2015-06-12 3 views
0

данные CakePHP:HABTM создания всех записей CakePHP

Array (
    [Table_1] => Array (
     [name] => Test 
    ) 
    [Table_2] => Array (
     [0] => Array (
      [name] => Test 
     ) 
     [1] => Array (
      [name] => Test 
     ) 
    ) 
) 

SQL:

CREATE TABLE Table_1 (
    id INT AUTO_INCREMENT, 
    name VARCHAR (10), 
    PRIMARY KEY (id) 
) 
CREATE TABLE Table_2 (
    id INT AUTO_INCREMENT, 
    name VARCHAR (10), 
    PRIMARY KEY (id) 
) 
CREATE TABLE Table_1_2 (
    id INT AUTO_INCREMENT, 
    table1_id INT, 
    table2_id INT, 
    PRIMARY KEY (id), 
    FOREIGN KEY (table1_id) REFERENCES Table_1(id), 
    FOREIGN KEY (table2_id) REFERENCES Table_2(id) 
) 

Форма регистрирует три таблицы там описано, как это сделать в CakePHP и до сих пор ассоциируют их должным образом? Я пробовал разные способы и не мог.

+1

Можете ли вы поделиться кодом одного или нескольких способов, которыми вы пытались? – lenz

+0

Используется Table1-> saveAll, не работает, не знаю, правильно ли форматируются данные или что. используется для сохранения на модели за один раз, но как только вы попадаете в таблицу HABTM, она не может продолжаться. Из различных параметров, используемых в обеих модификациях структуры данных. – paulorwd

+0

Привет и добро пожаловать в переполнение стека. Здесь мы ожидаем, что вы покажете нам, что вы пробовали. Если вы пробовали несколько способов, покажите нам лучшее, что у вас есть до сих пор (даже если оно не работает). Не помещайте код в комментарии (форматирование кода ужасно), отредактируйте свой вопрос и добавьте его там. покажите нам действительный код, а не просто его словесное описание - мы не можем отлаживать словесное описание. :) –

ответ

0

Вот хорошая статья на HABTM CakePHP в: http://patisserie.keensoftware.com/en/pages/how-to-save-habtm-data-in-cakephp

Наиболее важные:

Ассоциирования существующих записей:

array(
    'Foo' => array(
     'id' => '...', 
     ... 
    ), 
    'Bar' => array(
     'Bar' => array(
      [0] => 'id1', // id of an existing Bar 
      [1] => 'id2', // id of another existing Bar 
      ... 
     ) 
    ) 
) 

Ассоциирования новых записей:

array(
    [0] => array(
     [Foo] => array(
      [id] => ... 
     ), 
     [Bar] => array(
      [name] => ... 
     ) 
    ), 
    [1] => array(
     [Foo] => array(
      [id] => ... 
     ), 
     [Bar] => array(
      [name] => ... 
      ) 
     ) 
) 

Там немного больше в статье об объединенной ассоциации s обходной путь.

+0

Но нет существующих записей, являются новыми записями, т. Е. Создает один для Table1 и Table2, а другой для установления ассоциации. – paulorwd

+0

Ну да, это второй пример ... Он создает новые записи и соединяет их. В чем проблема? – Skatch