我的帐户型号:id,name
我的参赛作品型号:id,account_id1,account_id2,金额
所以我的条目有2个外键到帐户模型。
我定义了这样的模型关联。
$this->belongsTo(
'Acc1',
[
'className' => 'Accounts',
'foreignKey' => 'account_id1',
'joinType' => 'INNER',
]
);
$this->belongsTo(
'Acc2',
[
'className' => 'Accounts',
'foreignKey' => 'account_id2',
'joinType' => 'INNER',
]
);
现在我需要查找相关帐户名称以" ab"开头的条目。
在我的条目模型文件中:
$this->find()
->matching(
'Acc1',
function ($q) {
return $q->where(['LEFT(Acc1.name, 2) =' => 'ab']);
}
);
这将为我提供相关帐户(通过account_id1)名称以" ab"
开头的所有条目$this->find()
->matching(
'Acc1',
function ($q) {
return $q->where(['LEFT(Acc1.name, 2) =' => 'ab']);
}
)
->matching(
'Acc2',
function ($q) {
return $q->where(['LEFT(Acc2.name, 2) =' => 'ab']);
}
);
两个帐户名称以" ab"开头的结果。
如何获取Acc1.name 或 Acc2.name以" ab"?
开头的条目答案 0 :(得分:0)
尝试在不使用->matching
的情况下构建查询。您可以使用联接,也可以包含Acc1
和Acc2
。然后蛋糕有一些OR方法来帮助你。
->where(['LEFT(Acc1.name, 2) =' => 'ab'])
->orWhere(['LEFT(Acc2.name, 2) =' => 'ab']);
http://book.cakephp.org/3.0/en/orm/query-builder.html#advanced-conditions