Это кажется таким простым, но я ударяю головой о стену.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) получает вставляется в таблицу художников. Связанные художники не делают, и ничто не вставлено в таблицу соединений.
Что я делаю неправильно?
Спасибо за ответ. Я стараюсь спасти художника и ее смежных художников на столе ** **. И отношение в таблице ** artist_related **. Это отличается от примера на странице, потому что его не между двумя разными моделями, а хаттмом к той же модели. – lasse
Как и в поваренной книге, вы можете выбрать других художников с помощью выпадающего списка, $ this-> set ('artist', $ this-> Artist-> find ('list')); и в виде $ this-> Form-> input ('artist'); –