Объединение HABTM не дает никаких результатов из связанного массива в cakeStack Overflow

Я пытаюсь связать модель HABTM с объединениями, но я не получаю никаких записей из объединенных таблиц.
У меня есть данные для репетитора id = 2, а также у меня есть этот идентификатор 2 в других таблицах репетиторов-предметов, а также ключ в предмете. я не должен получить NULL в других таблицах. Я не получаю ошибку.

Я хочу, чтобы все предметы для репетитора ID = 2.

Вот контроллер и модель с отношением

array(
(int) 0 => array(
'Subject' => array(
'id' => null,
'name' => null
),
'TutorsSubject' => array(
'id' => null,
'tutor_id' => null,
'subject_id' => null
),
'Tutor' => array(
'id' => '2',
'tutor_inactive' => false,
'first_name' => 'fred2',
'last_name' => 'blah',..........

class TutorsController extends AppController {

public function tutordetails() {
$options2['joins'] = array(
array('table' => 'tutors_subjects',
'alias' => 'TutorsSubject',
'type' => 'LEFT',
'conditions' => array(
'Tutor.id = TutorsSubject.tutor_id', //fixed 'Tutor.id = TutorsSubject.id', //
)
),

array('table' => 'subjects',
'alias' => 'Subject',
'type' => 'LEFT',
'conditions' => array(
'TutorsSubject.subject_id=Subject.id',
)
)

));

$options2['fields'] = array('Subject.*','TutorsSubject.*','Tutor.*');

$this->Tutor->recursive = -1;
$options2['conditions'] = array('Tutor.id'  => 2);
$subject=$this->Tutor->find('all',$options2);
$this->set('subject', $subject);
debug($subject);class Subject extends AppModel {
public $hasAndBelongsToMany = array(

'Tutor' => array(
'className' => 'Tutor',
'joinTable' => 'tutors_subjects',
'foreignKey' => 'subject_id',
'associationForeignKey' => 'tutor_id',
'unique' => 'keepExisting',
'conditions' => '',

)
);

}

class Tutor extends AppModel {
..

public $hasAndBelongsToMany = array(
'Subject' => array(
'className' => 'Subject',
'joinTable' => 'tutors_subjects',
'foreignKey' => 'tutor_id',
'associationForeignKey' => 'subject_id',
'unique' => 'keepExisting',
'conditions' => '',

),

);

UPDATE=AgRIZZO solved it and changed made above

0

Решение

Agrizzo получил ответ Использование JOINs, когда вы правильно определили отношения модели, является огромной ошибкой. Используйте фреймворк для того, для чего он был определен (и вам нужно хорошо поддерживается без JOIN). Как говорится, ваша проблема, скорее всего, такова:

Tutor.id = TutorsSubject.id ‘в вашем первом определении JOIN. Пытаться

        'Tutor.id = TutorsSubject.tutor_id
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector