基本的に次のことを行うために doSave() メソッドをオーバーライドしています: ユーザーが選択するか新しいオプションを入力できる sfWidgetFormPropelChoice フィールドがあります。ウィジェットの値を変更するにはどうすればよいですか? あるいは、私はこれに間違った方法で取り組んでいるのかもしれません。したがって、 doSave() メソッドをオーバーライドする方法は次のとおりです。
public function doSave($con = null)
{
// Save the manufacturer as either new or existing.
$manufacturer_obj = ManufacturerPeer::retrieveByName($this['manufacturer_id']->getValue());
if (!empty($manufacturer_obj))
{
$this->getObject()->setManufacturerId($manufacturer_obj->getId()); // NEED TO CHANGE THIS TO UPDATE WIDGET'S VALUE INSTEAD?
}
else
{
$new = new Manufacturer();
$new->setName($this['manufacturer_id']->getValue());
$new->save();
$this->getObject()->setManufacturerId($new->getId()); // NEED TO CHANGE THIS TO UPDATE WIDGET'S VALUE INSTEAD?
}
parent::doSave($con);
}