Nadpisuję moją metodę doSave(), aby wykonać następujące czynności: Mam pole sfWidgetFormPropelChoice, które użytkownik może wybrać albo wpisać nową opcję. Jak mogę zmienić wartość widgetu? A może podchodzę do tego w niewłaściwy sposób. Więc tutaj jest jak ja overrode() metoda doSave:W symfony, jak ustawić wartość pola formularza?
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);
}
Dzięki za odpowiedź! Jak poradziłbyś sobie z robieniem tej pracy w grupie? Skoro jest to związane z formą, czy nie powinno być w formie? Element równorzędny nie ma danych formularza, które mogłyby być identyfikatorem lub nową nazwą. –