Как мне получить доступ к функции no_monitor в функции save()?
У меня есть эта функция configure()
в моей форме:
public function configure() {
$this->current_user = sfContext::getInstance()->getUser()->getGuardUser();
unset($this['updated_at'], $this['created_at']);
$this->widgetSchema['idempresa'] = new sfWidgetFormInputHidden();
$id_empresa = $this->current_user->getSfGuardUserProfile()->getIdempresa();
$this->setDefault('idempresa', $id_empresa);
$this->widgetSchema['no_emisor'] = new sfWidgetFormDoctrineChoice(array('model' => 'SdrivingEmisor', 'add_empty' => 'Seleccione un Emisor', 'expanded' => false, 'multiple' => false));
$this->validatorSchema['idempresa'] = new sfValidatorPass();
$this->validatorSchema['no_emisor'] = new sfValidatorPass();
}
И мне нужно определить данные отношений в функции save()
поэтому я делаю это:
public function save($con = null) {
$new_machine = parent::save($con);
$relation = new SdrivingMaquinaEmisor();
$relation->setIdmaquina($new_machine);
$relation->setIdemisor();
$relation->save();
return $new_machine;
}
Чтобы установить Idemisor
, как мне получить доступ к выбранному значению, когда пользователи отправляют форму? Это лучший способ достичь этого?
РЕДАКТИРОВАТЬ После того, как вы no_emisor
предложение о том, как получить доступ no_emisor
значению no_emisor
теперь мой код выглядит так:
public function save($con = null) {
$new_machine = parent::save($con);
$relation = new SdrivingMaquinaEmisor();
$relation->setIdmaquina($new_machine);
$relation->setIdemisor($this->values['no_emisor']);
$relation->save();
return $new_machine;
}
Но я получаю эту ошибку:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Колонка idmaquina не может быть нулевой
По какой-то причине $new_machine
не возвращает id
последнего сохраненного элемента. Может быть, я делаю не так, так что я делаю неправильно?
Я думаю, что вы захотите сделать это в форме doUpdateObject
вместо этого, так как это получает очищенные значения.
http://www.symfony-project.org/api/1_4/sfFormObject#method_doupdateobject
Редактировать:
Альтернативно, $this->values['no_emisor']
должны работать, как только форма была привязана.
- Вопросы
- Symfony-1.4
- Как мне получить доступ к функции no_monitor в функции save()?