CakePHP:如何使用“;或”;使用find方法生成查询时的操作

CakePHP:如何使用“;或”;使用find方法生成查询时的操作,cakephp,Cakephp,我想在我的视图中的5列上进行免费搜索。我有以下5个专栏 1.类别 2.类型 3.参考文献 4.网址 现在如果用户输入这些数据 类别==文件,类型==技术,参考==umair,URL==文件/umair.jpg 我想搜索数据库中的所有行,在第一列的任何一行中都有一个目录“文件”,在任何一列的任何一行中键入“technical”,以此类推,我试图应用“OR”条件,但给出了错误 我的问题是: $this->set('Grades', $this->Grade->find('all',

我想在我的视图中的5列上进行免费搜索。我有以下5个专栏 1.类别 2.类型 3.参考文献 4.网址

现在如果用户输入这些数据 类别==文件,类型==技术,参考==umair,URL==文件/umair.jpg

我想搜索数据库中的所有行,在第一列的任何一行中都有一个目录“文件”,在任何一列的任何一行中键入“technical”,以此类推,我试图应用“OR”条件,但给出了错误

我的问题是:

$this->set('Grades', $this->Grade->find('all', array('conditions'=>array('Grade.category'=>$category,'Grade.type'=>$type,'Grade.reference'=>$reference,'Grade.url'=>$url))));

此查询只返回一行,其中包含category==file和type==technical和reference==umair和url==files/umair.jpg,但我希望它应该返回category==file或type==technical或reference==umair或url==files/umair.jpg需要使用或作为条件类型的所有行。默认情况下,蛋糕将使用和

$conditions = array(
    'OR' => array(
        'Grade.category'=>$category,
        'Grade.type'=>$type,
        'Grade.reference'=>$reference,
        'Grade.url'=>$url
    )
)

您需要使用或作为条件类型。默认情况下,蛋糕将使用和

$conditions = array(
    'OR' => array(
        'Grade.category'=>$category,
        'Grade.type'=>$type,
        'Grade.reference'=>$reference,
        'Grade.url'=>$url
    )
)

$conditions=array('OR'=>array('Grade.category'=>$category,'Grade.type'=>$type,'Grade.reference'=>$reference,'Grade.url'=>$url))$此->设置('Grades',$this->Grade->find('all',$conditions);$type=$this->request->data['Grade']$conditions=array('OR'=>array('Grade.category'=>$category,'Grade.type'=>$type));$this->set('Grades',$this->Grade->find('all',$conditions);}}
$this->Grade->find('all',array('conditions'=>$conditions))
。此外,您还没有指定要获取的错误。当我单击“搜索”按钮时,我正在执行sam,尽管给了我视图,但它表示发生了内部错误,事实上,它甚至没有出现在搜索页面上,当我只是检查它时,它会出现在搜索页面上,当我单击“确定搜索文件”按钮时,它会显示搜索页面然后搜索数据我有一个布局,在页面的上半部分,我从用户那里获取数据,然后在同一页面的下半部分,当我点击搜索按钮时,它显示结果当我在控制器的搜索功能中注释这一行时,它进入搜索页面$this->set('Grades',$this->Grade->find('all',array('conditions'=>$conditions));$conditions=array('OR'=>array('Grade.category'=>$category,'Grade.type'=>$type,'Grade.reference'=>$reference,'Grade.url'=>$url));$this->set('Grades',$this->Grade->find('all',$conditions);在控制器中查看其未运行的我的搜索函数时出现内部错误:
公共函数搜索(){if($this->request->is('post')){$category=$this->request->data['Grade']['category'];$type=$this->request->data['Grade']['type'];$conditions=array('OR'=>array('Grade.category'=>$category,'Grade.type'=>$type));$this->set('Grades',$this->Grade->find('all',$conditions);}}
$this->Grade->find('all',array('conditions'=>$conditions))
。此外,您还没有指定要获取的错误。当我单击“搜索”按钮时,我正在执行sam,尽管给了我视图,但它表示发生了内部错误,事实上,它甚至没有出现在搜索页面上,当我只是检查它时,它会出现在搜索页面上,当我单击“确定搜索文件”按钮时,它会显示搜索页面然后搜索数据我有一个布局,在页面的上半部分,我从用户那里获取数据,然后在同一页面的下半部分,当我点击搜索按钮时,它显示结果当我在控制器的搜索功能中注释这一行时,它进入搜索页面$this->set('Grades',$this->Grade->find('all',array('conditions'=>$conditions));