cakePHP WHERE IN子句:数组到字符串的转换

cakePHP WHERE IN子句:数组到字符串的转换,cakephp,where-in,Cakephp,Where In,您好,我想从以下数组范围内的表中获取所有数据: //从AJAX发送到PHP的数据 $authors = $_POST['authors']; $articles= $_POST['articles']; 以下cakePHP查询给了我以下错误: 查询: $this->Mymodel->find('all', array('conditions' => array('Mymodel.name' => array($authors ,$articles)),'order'=&

您好,我想从以下数组范围内的表中获取所有数据: //从AJAX发送到PHP的数据

$authors = $_POST['authors'];
$articles= $_POST['articles'];
以下cakePHP查询给了我以下错误:

查询:

$this->Mymodel->find('all', array('conditions' => array('Mymodel.name' => array($authors ,$articles)),'order'=>'Mymodel.id DESC'));
错误:

Notice (8): Array to string conversion [CORE/Cake/Model/Datasource/DboSource.php, line 2591]
Database Error

Error: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "," LINE 1: ...Mymodel" WHERE "Mymodel"."name" IN (Array, Array) ... ^
我做错了什么?我知道如果我有一个arry作为
$authors=array('sss','rrr')它会工作,那么为什么在我的情况下它不工作呢?

提前谢谢。

我相信您的
$authors
$articles
变量已经是数组了

$this->Mymodel->find('all', array(
  'conditions' => array(
      'Mymodel.name' => array_merge($authors, $articles)
   ),
  'order'=>'Mymodel.id DESC')
);

您的代码中有一个错误,
数组不能有相同的键两次,因此条件也应该包装在数组中-
数组('OR'=>array(array('Mymodel.name'=>$authors),array('Mymodel.name'=>$articles))
谢谢您的回答,但这不是我想要的,我不想要'OR'子句,我想要这样的东西:$article=array('Jhon','Bill')$autors=数组('article2','article3')$这个->我的模型->查找('all',array('conditions'=>array('Mymodel.name'=>array(“Jhon”,“Bill”,“article2”,“article3”),'order'=>Mymodel.id DESC');最后一个查询可以工作,但这个查询不能:$This->Mymodel->find('all',array('conditions'=>array('Mymodel.name'=>array($articles,$autors)),'order'=>Mymodel.id DESC');那我怎么才能让它工作呢?哈哈哈,你是在喝酒还是干什么?现在我们都在同一页上,粉碎它就像我想要的一样,非常感谢:)