Tôi đang ghi đè phương thức doSave() của mình về cơ bản thực hiện các thao tác sau: Tôi có một trường sfWidgetFormPropelChoice mà người dùng có thể chọn hoặc nhập một tùy chọn mới. Làm thế nào tôi có thể thay đổi giá trị của widget? Hoặc có lẽ tôi đang tiếp cận điều này một cách sai lầm. Vì vậy, đây là cách tôi overrode các) phương pháp doSave (:Trong symfony, cách đặt giá trị của một trường biểu mẫu?
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);
}
Cảm ơn phản hồi của bạn! Làm thế nào bạn sẽ đi về làm công việc đó trong đồng đẳng? Vì nó liên quan đến form, nên nó không đi vào form? Người ngang hàng không có dữ liệu biểu mẫu sẽ là ID hoặc tên mới. –