cakephp如何进行此查询

tcomlyy6  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(324)

我是cakephp新手,我有一个关于如何做的问题,我有两个表campaign和users,我对campaign表和对users进行搜索的结果进行查询。

|---------|
| Camping |
|---------|
|   id    |
|---------|
|   name  |
|---------|

|----------|
|   User   |
|----------|
|   id     |
|----------|
|   name   |
|----------|
|Camping_id|

在php中,我执行以下查询 "Select * from camping where id = 1;" 根据结果,我在users表中进行了另一个查询 "Select * from user where camping_id = result.camping"

sigwle7e

sigwle7e1#

如果你需要过滤 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-通过匹配和联接关联数据

相关问题