Cakephp 3修改集合时遇到麻烦

时间:2020-02-17 21:54:16

标签: cakephp-3.0

我正在进行收集,其中一项任务是使其与不等于=且不等于“在线”的campus.campus_name的任何Campus_id匹配。

$onCampusesLocationsHc = $collection->match(['enrollment_type_id' => 1 ])->match(['location_id' => 1 ])->match(['campus_id' => !NULL]);

到目前为止,此方法效果很好,但添加“或不等于'在线'的campus.campus_name”时遇到了麻烦。

我添加了

->match(['campus.campus_name' => 'Online']);

如果应用第一个条件,它将不起作用。

->match(['campus_id' => !NULL]);

,但它将过滤掉“在线”类别以外的所有内容。 如果添加此行而不是!= NULL

我试图反方向运行,但结果为空。

->match(['campus.campus_name !=' => 'Online']);

它应该返回六个校园。

努力在“集合过滤器”中找到某些内容,这使我可以将两个过滤器应用于一列。

1 个答案:

答案 0 :(得分:0)

格雷格·施密特(Greg Schmidt)带领我找到了答案。我使用了reject()过滤器

->拒绝(函数($ notOnline,$ key){return $ notOnline-> campus-> campus_name ==='Online';})

通过在末尾添加拒绝功能,我能够拒绝校园名称为Online的任何内容。现在出现了其他六个校园