0

Это кажется таким простым, но я ударяю головой о стену.CakePHP (1.3) HABTM на той же модели saveAll() не работает

У меня есть простые отношения HABTM (у художников есть много художников), и я пытаюсь сохранить некоторые данные.

У меня есть две таблицы: художников: (номер, имя, создание, изменение) artists_related: (идентификатор, artist_id, related_id)

Вот что мой код выглядит как, модели/группа .php:

class Artist extends AppModel { 
var $name = 'Artist'; 
var $hasAndBelongsToMany = array(  
    'Related' => array(   
     'className'  => 'Artist', 
     'joinTable'  => 'artists_related',   
     'foreignKey' => 'artist_id', 
     'associationForeignKey' => 'related_id' 
    ) 
); 

function saveArtist($slug) { 

    $data = array(
     'Artist' => array(
      'name' => 'Alicia Keys' 
     ), 
     'Related' => array(
      array(
       'name' => 'Mariah Carey' 
      ), 
      array(
       'name' => 'Beyoncé' 
      ) 
     ) 
    ); 
$result = $this->saveAll($data); 

результаты SaveAll() является то, что одна строка (Alicia Keys) получает вставляется в таблицу художников. Связанные художники не делают, и ничто не вставлено в таблицу соединений.

Что я делаю неправильно?

ответ

0

Я did't получить то, что вы пытаетесь сделать после того, как пройти через эту ссылку, это может помочь

http://book.cakephp.org/1.3/en/view/1034/Saving-Related-Model-Data-HABTM

+0

Спасибо за ответ. Я стараюсь спасти художника и ее смежных художников на столе ** **. И отношение в таблице ** artist_related **. Это отличается от примера на странице, потому что его не между двумя разными моделями, а хаттмом к той же модели. – lasse

+0

Как и в поваренной книге, вы можете выбрать других художников с помощью выпадающего списка, $ this-> set ('artist', $ this-> Artist-> find ('list')); и в виде $ this-> Form-> input ('artist'); –

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