where条款在cakephp 3.4中不起作用

where条款在cakephp 3.4中不起作用,php,mysql,cakephp,cakephp-3.0,Php,Mysql,Cakephp,Cakephp 3.0,我想在子类别控制器中使用类别列表。我尝试以下方法来获取状态为1的类别 $this->loadModel('Categories'); $query = $this->Categories->find(); $query->where(['cat_status' => 1]); 这将返回以下输出 '选择Categories.id作为Categories\uu id,选择Categories.cat\u name作为 Categories\uuu cat\u name

我想在子类别控制器中使用类别列表。我尝试以下方法来获取状态为1的类别

$this->loadModel('Categories');
$query = $this->Categories->find();
$query->where(['cat_status' => 1]);
这将返回以下输出

'选择Categories.id作为
Categories\uu id
,选择Categories.cat\u name作为
Categories\uuu cat\u name
,Categories.cat\u状态为
Categories\uu cat\u状态
来自类别类别,其中cat_状态=:c0'

我不知道它是从哪里来的:c0。然后我使用了另一个代码,它给出了所有列表,但where子句不起作用

$this->loadModel('Categories');
$categories = $this->Categories->find('all',[
                                            'where' => (['cat_status'=>1]),
                                            'limit' => 5,
                                            'order' => 'Categories.id DESC'
    ]);
debug($categories);
输出是

选择Categories.id作为
Categories\uu id
,Categories.cat\u name作为
Categories\uu cat\u name
,Categories.cat\u状态为
Categories\uuuu cat\u status
来自类别排序依据 类别id描述限制5


请建议一种合适的方法。

通过查询传递条件,如下例所示

范例

$categories = $this->Categories->find('all',['conditions'=>['cat_status'=>1]])->limit(5)->order(['Categories.id'=> 'DESC']);

通过查询传递条件,如下例所示

范例

$categories = $this->Categories->find('all',['conditions'=>['cat_status'=>1]])->limit(5)->order(['Categories.id'=> 'DESC']);

您需要先添加
->()
对于where子句,如下所示:

$query->where(['cat_status' => 1])->first();

您需要先添加
->()
对于where子句,如下所示:

$query->where(['cat_status' => 1])->first();

在运行
->find()
之前,将
->where()
放在何处不是更有意义的吗“不工作”不是正确的问题描述!即使这个问题对于了解CakePHP内部结构的人来说是显而易见的,但请始终尽可能具体地说明到底发生了什么,以及您希望发生什么。显示您正在使用的数据、上下文、重现问题所需的代码、调试尝试和可能的错误。话虽如此,您显示的是一个完全有效的SQL查询,其中包含一个占位符作为绑定值。@RiggsFolly在CakePHP 3.x中,
find()
返回一个查询(builder)对象。@ndm Ah解释了将用作绑定参数的
:c0
,将
->放在何处()
在运行
->find()之前,“不工作”不是正确的问题描述!即使这个问题对于了解CakePHP内部结构的人来说是显而易见的,但请始终尽可能具体地说明到底发生了什么,以及您希望发生什么。显示您正在使用的数据、上下文、重现问题所需的代码、调试尝试和可能的错误。话虽如此,您显示的是一个完全有效的SQL查询,其中包含一个占位符作为绑定值。@RiggsFolly在CakePHP 3.x中,
find()
返回一个查询(builder)对象。@ndm Ah解释了将用作绑定参数的
:c0
。我得到了结果,但为什么查询是选择Categories.id作为
Categories\uu id
,Categories.cat\u name作为
Categories\uu cat\u name
,Categories.cat_status AS
Categories_cat_status
来自Categories Categories,其中cat_status=:c0按类别排序。id DESC LIMIT 5您能解释一下什么是:c0吗?@shubham715不允许转义输入。这样做是为了允许绑定参数。即使你可以在这里详细阅读它的工作。我得到了结果,但为什么查询是选择Categories.id作为
Categories\uu id
,Categories.cat\u name作为
Categories\uu cat\u name
,Categories.cat_status AS
Categories_cat_status
来自Categories Categories,其中cat_status=:c0按类别排序。id DESC LIMIT 5您能解释一下什么是:c0吗?@shubham715不允许转义输入。这样做是为了允许绑定参数。甚至你也可以在这里详细阅读