2016-07-27 2 views
1

У меня есть две формы в одном представлении, каждая форма от другого объекта/модели.Отправить несколько форм с одним запросом

Я хочу отправить их одним запросом, если возможно, данные должны перейти к соответствующему контроллеру + действие.

Как это можно сделать?

Edit:

Я хочу изменить сущности B, которая принадлежит к сущности А, в сущности мы форма.

А есть много B.

+1

Пахнет немного [** ху-иш **] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) для меня .. Я не думаю, что кто-то здесь сможет помочь вам, если вы не предоставите дополнительную информацию, начиная с причины наличия необходимости в двух формах. Похоже на странное решение проблемы, о которой вы должны были спросить. – ndm

+0

@ndm Пока я редактирую объект A, я хочу, чтобы в то же время (в том же представлении) редактировал объект B, который принадлежит объекту A. Как в «A имеет много B». –

+1

вам нужно создать только одну форму. В руководстве объясняется, как создавать входы для связанных данных [здесь] (http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data) и как сэкономить связанные данные в вашем контроллере [здесь] (http://book.cakephp.org/3.0/en/orm/saving-data.html#converting-request-data-into-entities) – arilia

ответ

1

Как @arilia предложил, я пошел корыто руководства.

Сначала я связанные таблицы добавляющие это BTable

$this->belongsTo('A', [ 
     'foreignKey' => 'auto_id', 
     'joinType' => 'INNER', 
    ]); 

и это в ATable

$this->hasMany('B'); 

В аСопЬгоНег после этого

if ($this->request->is('post')) { 

Я добавил это для 'добавить' действие,

$a= $this->A->patchEntity($a, $this->request->data, [ 
       'associated' => [ 
        'B' 
       ] 
      ]); 

В действии редактирования я сделал те же шаги, что и выше, плюс это право после подписи функции:

$a= $this->A->get($id, [ 
      'contain' => ['B'] 
     ]); 

Это решило проблему, так как теперь я могу редактировать связанные объекты только с одной формой.

Благодаря @arilia

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