代码之家  ›  专栏  ›  技术社区  ›  James Skidmore

在symfony中,如何设置表单字段的值?

  •  5
  • James Skidmore  · 技术社区  · 16 年前

    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);
    }
    
    3 回复  |  直到 16 年前
        1
  •  9
  •   j0k gauthamp    13 年前

    (sfForm) setDefault ($name, $default)
    (sfForm) setDefaults ($defaults)
    

    $form->setDefault('WidgetName', 'Value');
    $form->setDefaults(array(
        'WidgetName' => 'Value',
    ));
    
        2
  •  2
  •   Dreur    16 年前

    $this->form->getObject()->setFooId($this->foo->getId()) /*Or get the manufacturer id or name from request here */
    $this->form->save();
    

    public function save(PropelPDO $con= null)
    {
      if ($this->isNew() && !$this->getFooId())
      {
        $foo= new Foo();
        $foo->setBar('bar');
        $this->setFoo($foo);
       } 
    }
    
        3
  •  1
  •   bb.    16 年前

    public function doSave($con = null)
    {
        // retrieve the object from the DB or create it
        $manufacturerName = $this->values['manufacturer_id'];
        $manufacturer = ManufacturerPeer::retrieveByName($manufacturerName);
        if(!$manufacturer instanceof Manufacturer)
        {
            $manufacturer = new Manufacturer();
            $manufacturer->setName($manufacturerName);
            $manufacturer->save();
        }
    
        // overwrite the field value and let the form do the real work
        $this->values['manufacturer_id'] = $manufacturer->getId();
    
        parent::doSave($con);
    }