У меня раздражающая проблема.Я пытаюсь выяснить, какие поля формы были изменены, а затем вставить это в таблицу.Мне удалось var_dump в doUpdateObjectas, показанном в следующем
public function doUpdateObject($values)
{
parent::doUpdateObject($values);
var_dump($this->getObject()->getModified(false));
var_dump($this->getObject()->getModified(true));
}
. И похоже, что $ this-> getObject () -> getModified, кажется, работает, давая мне значения как до, так и после, устанавливая для него либо trueили ложь
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что sfWidgetFormSelect, похоже, сохраняет одно из моих полей в виде строки.перед сохранением это же поле было int.(Я получил эту идею с помощью var_dump как до, так и после).
Вот что показали результаты обоих дампов var:
array(1) {["annoying_field"]=> int(3)} array(1) {["annoying_field"]=>string(1)"3"}
Это, кажется, заставляет доктрину думать, что этомодификации и, таким образом, дает ложное срабатывание.
В моей базовой форме у меня есть
under $this->getWidgets()
'annoying_field' => new sfWidgetFormInputText(),
under $this->setValidators
'annoying_field' => new sfValidatorInteger(array('required' => false)),
и, наконец, в моем сконфигурированном Form.class.php я перенастроил файл следующим образом:
$this->widgetSchema['annoying_field'] = new sfWidgetFormSelect(array('choices' => $statuses));
statuses - это массив, содержащий такие значения, как {"" a "," b "," c "," d "}
, и я просто хочу, чтобы индекс статуса был сохраненв базе данных.
А также, как я могу вставить изменения в другую таблицу базы данных? скажем, мою таблицу журнала?
Любые идеи и советы относительно того, почему это происходит, приветствуется, яЯ пытался выяснить это и безуспешно просматривал Google по различным ключевым словам.
Спасибо!
Редактировать:
ОК, поэтому я создал еще одно поле, целое число в моей схеметолько для тестирования. Я создал запись, сохранил ее и отредактировал.
на этот раз тоже самоечто случилось!