2012-02-27 2 views
0

Есть две таблицы:
poducts [id, name, etc..] и specs [id, product_id, spec_name, spec_value],
Я использую форму для редактирования продукта (например /products/edit/332)
В форме я Вана добавить (это связано, и я могу получить к нему доступ в представлении) спецификации. которые являются списком записей из таблицы specs.CakePHP единой формы, две таблицы, несколько записей

Возможно ли создание спецификаций в качестве входных данных в одной форме? также, я хотел бы включить функцию «добавить новую спецификацию».

благодаря

ответ

2

Для сохранения данных, относящихся к модели, вы можете использовать saveAll:

$this->Product->saveAll($this->request->data); 

И ваш вклад в виде продукта:

echo $form->input('Spec.0.spec_name'); 
echo $form->input('Spec.0.spec_value'); 

Если вам нужно больше ресурсов, просто увеличить 0.

Дополнительная информация: http://book.cakephp.org/2.0/en/models/saving-your-data.html

+0

три задачи: 1) SaveAll может сохранить только плоскую структуру данных, несколько записей из той же самой модели или одной, связанной записи. 2) model.number.field_name отлично справляется с новыми записями, а не с их редактированием, так как идентификатор отсутствует. 3) Я использую cakephp v1.3 – yossi

+0

1) Продукт и спецификация не имеет ассоциации hasMany? 2) Мое предложение для обновления: принести данные для входов спецификаций, но при сохранении удалите все спецификации в beforeSave для сохранения снова, так как вы не знаете, удалил ли пользователь или добавил поле Spec в форме. 3) Извините, я не видел версию раньше. Но синтаксис почти такой же. –

Смежные вопросы