#cakephp
#cakephp
Вопрос:
У меня есть три модели: пользователь, вопрос, ответ. У пользователя много вопросов, а на вопросы есть много ответов, но CakePHP показывает мне ошибку в предложении WHERE? Как установить связь с тремя моделями?
Я пытаюсь, как
Пользовательская модель
var $hasMany = array(
'Question' => array(
'className' => 'Question',
'foreignKey' => false,
'conditions' => 'Question.user_id = User.id'
)
);
Модель ответа
var $hasMany = array(
'Answer' => array(
'className'=> 'Answer',
'foreignKey'=> false,
'conditions'=> array('Question.id = Answer.question_id')
)
);
Модель ответа:
var $belongsTo = array(
'Question' => array(
'className'=> 'Question',
'foreignKey'=> false,
'conditions'=> array('Question.id = Answer.question_id')
)
);
Заранее спасибо за вашу помощь. Извините за мой плохой английский.
Комментарии:
1. Почему вы устанавливаете ForeignKey в значение false и определяете (или, по крайней мере, пытаетесь) эквивалентные условия?
CakePhp shows me error in WHERE clause
<- какая ошибка? Где ваш вызов поиска? Также ответьте, что любой ответ не сработает.
Ответ №1:
Я думаю, что это проблема дизайна, а не техническая,
Попробуйте это :
Отношения
users - can take/"be taken by" many - exams
exams - contain/"belongs to" many - questions
Таблицы
пользователи: идентификатор — и т.д.
вопросы: id — question — category / topic_id и т.д.
экзамены: id — user_id — question_id — answer и т.д.
и, наконец, используйте hasMany через