public function loadTable(Table $table, DataRow $dataRow = null) { $schema = $table->getSchema(); $fields = $schema['fields']; $obj = new \ORC\MVC\Request\Object(); foreach ($fields as $field_name => $field) { if (!isset($_REQUEST[$field_name])) { continue; } switch ($field['type']) { case 'smallint': case 'int': case 'mediumint': if ($field['unsigned']) { $filter = 'posint'; } else { $filter = 'int'; } break; case 'decimal': $filter = 'numeric'; break; case 'enum': $filter = array('enum' => $field['value']); break; default: $filter = 'safe'; break; } $default_value = null; if ($dataRow) { if ($dataRow->exists($field_name)) { $default_value = $dataRow->get($field_name); } } $value = $this->applyFilter($_REQUEST[$field_name], $filter, $default_value); $this->set($field_name, $obj->{$field_name} = $value); } return $obj; }