0

listForm.class.php の私のコードの一部:

public function configure() {
    $list_id = $this->getOption('list_id');
    $endkunde_id = $this->getOption('endkunde_id');
    $shopname_id = 1;


    $todoWrapperForm = new sfForm();
    $todoWrapperForm = new sfForm();
    //$todos = Doctrine_Core::getTable('Todo')->findAll();


    //$todos = Doctrine_Core::getTable('EinkaufslisteElemente')->findAll();
    $todos = Doctrine_Core::getTable('EinkaufslisteElemente')
            ->createQuery('ee')
            ->where('ee.einkaufsliste_id = ?', $list_id)
            ->innerJoin('ee.Einkaufsliste e')

            ->andWhere('e.shopname_id = ?', $shopname_id)
           ->innerJoin('e.EinkaufslisteEndkunde ek')
            ->execute();


    foreach ($todos as $todo) {
        $todoWrapperForm->embedForm($todo->getId(), new EinkaufslisteElementeForm($todo));
    }
    $todoWrapperForm->embedForm('new_1', new EinkaufslisteElementeForm());  // add one blank todo to start
    $this->embedForm('todos', $todoWrapperForm);


        $this->list =  new sfWidgetFormTextarea(array(), array('rows' => '10', 'cols' => '35'));

    $this->mergePostValidator(new sfValidatorDoctrineUnique(array('model'=>'todo', 'column'=>'task'), array('required' => false)))               ;
    $this->widgetSchema->setNameFormat('todo_list[%s]');
}

「Customer」から非表示ではない名前の追加フィールドを作成し、テーブル「List」から list_id で非表示の入力フィールドを作成したいと考えています。埋め込みフォームでどうすればいいですか?

4

1 に答える 1

2

の中にlistForm、configureの下部に追加するだけです。

$this->widgetSchema['list_id']    = new sfWidgetFormInputHidden();
// do not forget to add the propel validator (ie: the one that can check if `list_id` is ok - like in the database)
$this->validatorSchema['list_id'] = new sfValidatorPass();

list_id次に、アクションで、デフォルトを次のように設定することを忘れないでください。

$form = new listForm();
$form->setDefault('list_id', $list_id);
于 2012-07-12T14:31:13.127 に答える