我在CakePHP的新手,現在我卡在多對多的情況CakePHP的多對多的條件
好吧,我有3個表:
- 問題 與字段(ID ,問題)
- question_product 與字段(ID,question_id,PRODUCT_ID,QUESTION_NUMBER,is_enabled)
- 產品 與字段(ID,名稱,代碼,is_enabled)
所以當我要選擇具有特定領域的問題,我不知道如何解決它 現在,我的代碼是這樣的:
Question.php(型號)
class Question extends AppModel {
public $hasAndBelongsToMany = array (
'Product' => array (
'joinTable' => 'question_product',
'foreignKey' => 'question_id',
'associationForeignKey' => 'product_id',
'unique' => 'keepExisting',
'order' => 'question_number',
'fields' => array (
'QuestionProduct.question_number',
'Product.id',
'Product.name'
),
'conditions' => array (
'QuestionProduct.is_enabled' => 1,
)
)
);
}
QuestionsController.php(控制器)
public function loadQuestions($productId) {
$this->view = 'load_questions';
$questions = $this->Question->find('all', array (
'fields' => array (
'Question.id',
'Question.question',
'Question.is_optional',
'Question.reason_optional',
'Question.text_size'
),
'conditions' => array (
'QuestionProduct.product_id' => $productId
)
));
$this->set($questions);
}
方法loadQuestions有一個參數與指定的產品
選擇,如果我使用SQL查詢,這將是這個樣子
從問題與條件PRODUCT.PRODUCT_ID = 4,通過QuestionProduct.question_number人354
select questions.*
from questions
join question_product on questions.id=question_product.question_id
join products on products.id=question_product.product_id
where products.id=4
order by question_product.question_number;
任何答案全部選擇可以理解的:)
謝謝!
我不明白這個問題。你能澄清問題是什麼以及你想完成什麼? – jeremyharris
@jeremyharris謝謝你的回覆..我已經添加了sql查詢,可能你有我的線索:) – Naman