Cakephp 3-在beforefind中获取字段和条件

人群

在beforeFind的cakephp 2.x中,我可以检查是否设置了某些条件,!empty($queryData['conditions'][$this->alias.'.field'])或者获取可以通过轻松检索的字段列表$queryData['fields']如何在cakephp 3.x中实现呢?

在之前找到

public function beforeFind(Event $event, Query $query, $options, $primary)
{
}

options是空的。$query我可以使用添加的条件$query->where(...),但如何检查设置哪些字段检索或已经应用什么样的条件?

谢谢

Burzum

取自CakePHP 3.0 API文档

traverse( callable $visitor , array $parts [] )

将遍历每个指定的部分。遍历函数可以使用闭包中的变量或实例变量来聚合结果。此功能通常用作遍历将用于构造查询的所有查询部分的方式。

回调将接收2个参数,第一个是要迭代的查询部分的值,第二个是该部分的名称。

例子:

$query->select(['title'])->from('articles')->traverse(function ($value, $clause) {
    if ($clause === 'select') {
        var_dump($value);
    }
}, ['select', 'from']);

因此,只需调用$ query-> traverse()并提供回调闭包并在其中进行检查即可。另请参见traverseExpressions()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Cakephp 3-在beforefind中获取字段和条件

来自分类Dev

CakePHP 3:如何自动从leftJoin获取字段?

来自分类Dev

Cakephp 3查询或条件

来自分类Dev

Git和CakePHP 3

来自分类Dev

cakephp 3添加条件验证

来自分类Dev

cakephp 3添加条件验证

来自分类Dev

CakePHP 3 和 jQuery Ajax

来自分类Dev

查找方法cakephp 3中的字段限制

来自分类Dev

App ::在CakePHP 3中构建

来自分类Dev

CakePHP 3中的子查询?

来自分类Dev

Cakephp 3中的条状路径

来自分类Dev

CakePHP 3中的模式管理和迁移

来自分类Dev

cakephp 3中的授权和ACL

来自分类Dev

cakephp2和Cakephp3的区别

来自分类Dev

CakePHP3中是否可以替换inputDefaults(CakePHP)?

来自分类Dev

CakePHP 3包含选择字段

来自分类Dev

CakePHP 3:添加额外的字段以从模板访问

来自分类Dev

CakePHP 3:尝试获取非对象的属性

来自分类Dev

CakePHP 3.x的缓存和分页

来自分类Dev

CakePHP 3 $ this-> Model->获取条件吗?

来自分类Dev

Cakephp3,如何在cakephp3中使用where子句和内部联接?

来自分类Dev

CakePHP 3:在dateWidget中更改顺序

来自分类Dev

cakephp 3中的Core.php

来自分类Dev

Cakephp3中AppModel的替换

来自分类Dev

CakePHP 3中的自定义授权

来自分类Dev

引导3确认在cakephp中删除模态

来自分类Dev

如何从cakephp 3中的URL访问参数

来自分类Dev

更改cakephp 3中的对象属性值

来自分类Dev

在CakePHP 3中获得当前操作