【问题标题】:Cakephp use Set to filter results from a queryCakephp 使用 Set 过滤来自查询的结果
【发布时间】:2014-03-29 09:22:22
【问题描述】:

Set::extract 是一个非常强大的功能,可以过滤从 find 方法中检索到的数据。 但是,据我所知,结果不是嵌套的。我的意思是,如果我有一个像

这样的数组
data = 
Array (
 0 => array(
   'User'   => Array (...),
   'Profile => Array (...)
   )
 1 => array(
   'User'   => Array (...),
   'Profile => Array (...)
   )
)

我会提取所有用户,比如说User.type =1,我会这样做:

$filtered Set::extract('/User[type=1',$data).

$filtered = Array(
0 => Array (
     'User' => Array()
)
)

而另一个数组 Profile 未显示。使用extract过滤时是否可以获取所有数据?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    您可以在第一个参数中使用 /../ 遍历数组路径。

    试试

    $filtered = Set::extract('/User[type=1]/..',$data);
    

    来源:http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::extract

    它说它是基本的 XPath 2.0 语法,其中一个示例使用了它。

    【讨论】:

    • 太棒了!你能指出我在哪里文档解释了“..”吗?
    • 哇,这真的是最好的答案。
    • 为什么不在查找或分页设置中设置条件?
    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2019-11-04
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2021-11-21
    相关资源
    最近更新 更多