редактировать несколько полей одновременно в одной таблице в Symfony 1.4 - PullRequest
0 голосов
/ 12 августа 2011

У меня есть таблица:

id | cat_id | name
1  | 1      | aaa
2  | 1      | bbb
3  | 2      | ccc
4  | 3      | ddd
5  | 2      | eee
6  | 1      | fff

Я могу перейти к site.com/table/edit/id/1 и покажи мне ввод

name (id 1) [ aaa    ] (i hide other field)

и я могу отредактировать идентификатор 1. как я могу сделать что-то:

site.com/table/edit/cat_id/1 и покажи мне:

name (id1) [  aaa   ]
name (id2) [ bbb    ] 
name (id6) [ fff    ]

и я могу их редактировать и сохранять. Как это сделать?

1 Ответ

1 голос
/ 12 августа 2011

Вы не достигнете этого с помощью сгенерированных по умолчанию форм.Но создать собственную форму довольно просто (просто начинается с sfForm и реализует функцию setup()).Затем добавьте свою собственную логику в функцию save().

Псевдокод:

class myForm extends sfForm {
  public function setup() {
    $models = //;

    foreach($models as $model) {
       $this->addWidget(new sfWidgetFormInputText());
       $this->addValidator(new sfValidatorString());
    }
  }

  public function save() {
    // loop through the widgets and save if valid.
  }
}

РЕДАКТИРОВАТЬ: Хм ... я думаю, что вы также можете создать одну форму и добавить всередактировать формы как подчиненные.

...