where 子句在 Cakephp 3.4 中不起作用



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

$this->loadModel('Categories');
$query = $this->Categories->find();
$query->where(['cat_status' => 1]);

这将返回以下输出

'选择 Categories.id 作为Categories__id,Categories.cat_name为Categories__cat_name,Categories.cat_statusCategories__cat_status从类别 类别 其中cat_status = :c0'

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

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

输出为

选择"Categories.id"作为Categories__id、Categories.cat_name为Categories__cat_name, Categories.cat_status ASCategories__cat_status从 类别 类别 排序依据 Categories.id DESC 限制 5

请提出合适的方式。

使用查询传递条件,如以下示例所示。

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

您需要添加->first()到你的 where 子句,像这样:

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

最新更新