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;
 }