#php #arrays #cakephp #associations
#php #массивы #cakephp #ассоциации
Вопрос:
Сначала извините за мой английский. У меня проблема с ассоциативными моделями в CakePHP. Например, когда я связываю более двух моделей
$this->Album->bindModel( массив( 'hasMany'=>массив( 'Фото'=>массив ( 'className'=>'Photo' ), 'Альбом'=>массив( 'Имя_класса'=>'Альбом' ) ) ) );
У меня есть:
Массив ( [Альбом] => Массив ( [id] => 22 [f_name] => Какой-нибудь альбом [0] => Массив ( [id] => 19 [f_name] => Другой альбом [id_parent] => 22 [Фото] => Массив ( ....
Можно ли каким-либо образом установить ключ в родительской таблице? Я имею в виду, что я не хочу иметь «0» в качестве ключа, может быть «Album1», «Album2» и так далее.
Ответ №1:
Проблема, вероятно, связана с привязкой модели к самой себе под тем же именем. В альбоме есть много альбомов, вероятно, где-то происходит сбой. Используйте уникальное имя для ассоциации, например, Album hasMany SubAlbum.
Комментарии:
1. Я знаю, что есть модель в ее собственной модели. Я написал пример, в facet есть и другие таблицы. Существует своего рода иерархическое дерево объектов. У одного объекта есть дочерние объекты — объекты того же типа (Альбом-> Альбом) или другого типа (Альбом-> Фото). В любом случае — как установить псевдоним модели в ассоциациях?
2. Вы уже почти там:
$this->Album->bindModel( array( 'hasMany'=>array( 'SomeOtherName'=>array( 'className'=>'Photo' ) ) ) );