Я эту configure()
функцию в моей форме:Как мне получить доступ к функции no_monitor в функции save()?
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
, как мне получить доступ к выбранному значению, когда пользователи отправляют форму? Это лучший способ достичь этого?
EDIT После принять предложение о том, как получить доступ к 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]: Integrity constraint violation: 1048 Column 'idmaquina' cannot be null
По какой-то причине $new_machine
Безразлично» t возвращает id
последнего сохраненного элемента. Может быть, я делаю не так, так что я делаю неправильно?
Возможно, но этот метод работал для меня несколько раз, я просто не знаю, как получить значение 'no_emisor' – Reynier
@Reynier см. Мое редактирование –
не могли бы вы взглянуть на мое издание? – Reynier