Add validation for loadIdsFor function.
This commit is contained in:
@@ -5674,27 +5674,38 @@ class Processes
|
|||||||
return $oData;
|
return $oData;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function loadIdsFor($modelClass, $uidTableField, $idTableField, &$data)
|
private function loadIdsFor($modelClass, $uidTableField, $idTableField,
|
||||||
|
&$data)
|
||||||
{
|
{
|
||||||
if (empty($data)) {
|
if (empty($data)) {
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
if (!is_array($data)) {
|
if (!is_array($data)) {
|
||||||
throw new Exception("Invalid input data form $modelClass($key)" . G::json_encode($data));
|
throw new Exception("Invalid input data form $modelClass($key)".G::json_encode($data));
|
||||||
}
|
}
|
||||||
$uidField = explode('.', $uidTableField)[1];
|
$uidTableFieldArray = explode('.', $uidTableField);
|
||||||
$idField = explode('.', $idTableField)[1];
|
$idTableFieldArray = explode('.', $idTableField);
|
||||||
|
if (count($uidTableFieldArray) !== 2) {
|
||||||
|
throw new Exception('Invalid argument $uidTableField, expected a "TABLE.COLUMN" string');
|
||||||
|
}
|
||||||
|
if (count($idTableFieldArray) !== 2) {
|
||||||
|
throw new Exception('Invalid argument $idTableField, expected a "TABLE.COLUMN" string');
|
||||||
|
}
|
||||||
|
$uidField = $uidTableFieldArray[1];
|
||||||
|
$idField = $idTableFieldArray[1];
|
||||||
if (isset($data[$uidField])) {
|
if (isset($data[$uidField])) {
|
||||||
//$data is an single row
|
//$data is an single row
|
||||||
$model = new $modelClass();
|
$model = new $modelClass();
|
||||||
$row = $model->load($data[$uidField]);
|
$row = $model->load($data[$uidField]);
|
||||||
$data[$idField] = $model->getByName($idTableField, BasePeer::TYPE_COLNAME);
|
$data[$idField] = $model->getByName($idTableField,
|
||||||
|
BasePeer::TYPE_COLNAME);
|
||||||
} else {
|
} else {
|
||||||
//$data is an array of row
|
//$data is an array of row
|
||||||
foreach ($data as &$dataRow) {
|
foreach ($data as &$dataRow) {
|
||||||
$model = new $modelClass();
|
$model = new $modelClass();
|
||||||
$row = $model->load($dataRow[$uidField]);
|
$row = $model->load($dataRow[$uidField]);
|
||||||
$dataRow[$idField] = $model->getByName($idTableField, BasePeer::TYPE_COLNAME);
|
$dataRow[$idField] = $model->getByName($idTableField,
|
||||||
|
BasePeer::TYPE_COLNAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
|
|||||||
Reference in New Issue
Block a user