0
基本上我想做的事就是写这个查询使用CakePHP 3查询生成器:协会在那里与阵列CakePHP的第3
SELECT * FROM question as q innerjoin answers as a where q.question = $question AND a.id NOT IN = $avoidedIDs
的表类
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
use App\Model\Entity\Comlib;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Validator;
use Cake\ORM\TableRegistry;
class ComlibsTable extends Table {
public function initialize(array $config) {
parent::initialize($config);
$this->table('questions');
// join the tables
$this->hasMany('Answers' , [
'foreignKey' => 'question_id'
]);
}
public function LFA($live_req) {
$query = $this->find()->where(['question' => $live_req])->contain(['Answers'])->LIMIT(6);
$query = $query->toArray();
//include 5 answer
return $query;
}
public function LFM($theid , $avoidedIDs, $question)
{
$query = $this->find()->where(['question' => $question])->contain(['Answers' => function($q){
return $q
->where(['Answers.id NOT IN' => $avoidedIDs]);
}
]);
$query = $query->toArray();
debug($query);
return $query;
}
}
,我得到的是错误代码:不可能生成带有空字段值列表的条件(Answers.id)。 但是当我print_r($ avoidIDs)我得到的值,我通过所以即时通讯确保$ avoidIDs不是空的,至少不包含功能,这是什么使它对我来说更加复杂,但是当我把一个数字,而不是我的变量将执行,如果我把1,2,3,4仍然只会执行第一个! 我在做什么错在过去2天????? tnx任何帮助