мне нужно присоединиться модель к себе ... но я получаю ошибку "Не уникальный стол/псевдоним: 'Image'"CakePHP модель содержит iteself
Image
Схема:
id: int
thumbnail_image_id: int null
key: varchar... filename
location: varchar... s3 or local
created: datetime
modified: datetime
Image
Модель:
<?php
App::uses('AppModel', 'Model');
class Image extends AppModel {
public $belongsTo = array(
'Thumbnail' => array(
'className' => 'Image',
'foreignKey' => 'thumbnail_image_id'
)
);
public $hasOne = array(
'Thumbnail' => array(
'className' => 'Image',
'foreignKey' => 'thumbnail_image_id'
)
);
public function exampleFunction() {
return $this->find('all', array(
'contain' => array('Thumbnail')
));
}
Бег exampleFunction
это дает мне ошибку «Не уникальный стол/псевдоним:" изображение». CakePHP строит SQL следующим образом:
SELECT `Image`.`id`, `Thumbnail`.`id` FROM `images` AS `Image` LEFT JOIN `images` AS `Image`.`thumbnail_image_id` = `Thumbnail`.`id`;
но это должно быть что-то вроде этого ... правильно? (Обратите внимание на перевернутый ON
):
SELECT `Image`.`id`, `Thumbnail`.`id` FROM `images` AS `Image` LEFT JOIN `images` AS `Thumbnail`.`id` = `Image`.`thumbnail_image_id`;
Если я бег оба запроса SQL выше в тузде консоли второй работы.
Предложения?
Зачем нужно соединение вообще? Что не так с простым выбором на поля 'id' и' thumbnail_image_id'? – Oldskool