как сохранить массив с несколькими элементами на каждой стороне HABTM - PullRequest
0 голосов
/ 04 октября 2011

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

Данные поступают в виде JSON, который анализируется в PHP следующим образом:

Array
(
    [0] => Array
        (
            [title] => example1
            [url] => http://example.org
            [keywords] => Array
                (
                    [0] => Hello
                    [1] => World
                )
        )
)

Затем я преобразую это в массив стиля CakePHP:

Array
(
    [0] => Array
        (
            [Bookmark] => Array
                (
                    [title] => example1
                    [url] => http://example.org
                )

            [Keyword] => Array
                (
                    [0] => Array
                        (
                            [title] => Hello
                        )

                    [1] => Array
                        (
                            [title] => World
                        )
                )
        )
)

Если я сделаю $this->Bookmark->save($data), это сохранит Закладку, и я смогу получить идентификатор из Закладки с $this->Bookmark->id.Но $this->Keyword->saveAll($data) ничего не делает.

Как сохранить закладку и подключить к ней все ключевые слова, не сохраняя дважды ключевые слова?

1 Ответ

0 голосов
/ 04 октября 2011

Для сохранения данных закладки

$this->Bookmark->save($data['Bookmark'])

Для сохранения данных ключевого слова

$this->Keyword->saveAll($data['Keyword'])

Обновлено

, вы должны изменить ваш массив следующим образом

Array
(
[0] => Array
    (
        [Bookmark] => Array
            (
                [title] => example1
                [url] => http://example.org
            )

 [Keyword] => Array
            (   
                [Keyword] => Array
                 (
                     [0] => Array
                         (
                                [title] => Hello
                         )

                     [1] => Array
                         (
                             [title] => World
                         )
                  )
             )
        )
   )
...