public function setFromArray($values) { if (!empty($values['assignment']) && $values['assignment'] == 1 && !empty($values['field_id'])) { $table = $this->getTable(); $cols = $table->info('cols'); $params = array_intersect_key($values, array_combine($cols, $cols)); // Pattern if ($params['assignment'] == 1 && !empty($params['field_id'])) { $field_id = $params['field_id']; $pattern = $values['field_pattern_' . $params['field_id']]; $types = Zend_Json::decode($values['types']); $type = $types[$field_id]; $params['pattern'] = array('type' => $type, 'value' => $pattern); } $values = $params; } return parent::setFromArray($values); }