Example #1
0
 public function validateModelObject(Model $object, array &$data, $process = null, $isStrict = false)
 {
     $filter = $object->getFilter();
     $shadow = [];
     $columns = $object->getColumns($process);
     //		$groupColumns = $object->getGroupColumns();
     if ($isStrict) {
         if ($process === Model::ON_UPDATE) {
             $shadow = $object->getShadowData();
         }
     }
     foreach (array_keys($data) as $field) {
         $column = isset($columns[$field]) ? $columns[$field] : [];
         // 过滤值,同时必须更新$data
         $object[$field] = $data[$field] = $filter->filterColumn($data[$field], $column);
         $isRemove = false;
         if ($isStrict) {
             if (!empty($column['dummy'])) {
                 $isRemove = true;
             }
             //				if (!isset($groupColumns['default'][$field]))
             //					$isRemove = true;
             if ($process === Model::ON_UPDATE) {
                 if (isset($shadow[$field]) && equals($shadow[$field], $data[$field])) {
                     $isRemove = true;
                 }
             }
         }
         if ($isRemove) {
             unset($data[$field]);
             continue;
         }
         $error = $this->validateColumn($field, $data[$field], $column, $object, $process, $isStrict);
         if ($error !== false) {
             $object->setError($field, $error, false);
             // 不要覆盖已经存在的错误
         }
     }
     return $this;
 }