2015-03-24 8 views
-5

У меня есть две таблицы в БД с именами пользователей и демонстраций. пользователей полей (id, username, password, email, phone) и демки полей (id, user_id [внешний ключ], sex, city)Как вставить (сохранить) данные в две таблицы, используя одну форму в cakephp?

+0

использовать концепцию hasOne or hasMany –

+0

показать нам, что вы пробовали? –

+0

Использование hasOne realtionship с функцией savAll в cakephp –

ответ

1

Прежде всего, в вашей форме (просмотра), вам должны быть готовы. Убедитесь, что каждый вход имеет следующий формат.

$this->Format->input('Model.field', array(...)); 

Таким образом, вы можете указать, к какой модели относится каждый вход.

Теперь у вас есть два варианта

Если ваши модели имеют никакого отношения между

Затем вы можете использовать saveAll() или saveAsociated() методы, просто убедитесь, что данные имеют формат Проппер, например:

$data = array(
    'Article' => array('title' => 'My first article'), 
    'Comment' => array(
     array('body' => 'Comment 1', 'user_id' => 1), 
     array('body' => 'Comment 2', 'user_id' => 12), 
     array('body' => 'Comment 3', 'user_id' => 40), 
    ), 
); 

В этом случае вы можете сделать saveAll() или saveAssociated() (для простоты я бы рекомендовал saveAll())

Если ваши модели не имеет отношения между

затем в контроллере вы должны импортировать внешнюю модель, как этот

$this->loadModel('ImportedModel'); 

После этого вы сохраните текущую модель, а затем создать и сохранить внешнюю модель.

$this->Model->save($this->request->data); 
$this->ImportedModel->save($this->request->data); 
Смежные вопросы