我是cakepp的新手,我有一个关于如何做到这一点的问题。我有两个表活动和用户,我查询活动表和对用户进行搜索的结果。
|---------|
| Camping |
|---------|
| id |
|---------|
| name |
|---------|
|----------|
| User |
|----------|
| id |
|----------|
| name |
|----------|
|Camping_id|
在PHP中,我执行以下查询"Select * from camping where id = 1;"
,并根据结果在用户表"Select * from user where camping_id = result.camping"
中进行另一个查询
如果需要通过Camping_id
进行筛选,可以使用where
方法,如下所示:
$users = TableRegistry::get('Users');
$query = $users->find()
->where(['Camping_id =' $campingId]);
如果你想通过关联数据进行过滤,你可以通过以下方式实现:
$campingName = '...';
$users = TableRegistry::get('Users');
$query = $users->find()
->matching('Campings', function ($q) use ($campingName) {
return $q->where(['Campings.name' => $campingName]);
});
文件:
- https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#using-加载数据的查找程序
- https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#filtering-通过匹配和联接关联数据