【问题标题】:cakephp how to make this queriescakephp 如何进行此查询
【发布时间】:2018-07-30 03:24:41
【问题描述】:

我是 cakephp 新手,我有一个关于如何做到这一点的问题。我有两个表活动和用户,我查询活动表和对用户进行搜索的结果。

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

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

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

【问题讨论】:

  • 您可以将 result.camping 替换为 1。您想达到什么目的?

标签: php mysql cakephp-2.0


【解决方案1】:

如果您需要通过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]);
    });

文档:

【讨论】:

  • 我的cakephp版本是2的问题
  • 那么你可以使用sub-queries或prepared statements就像这样:$db = $this->getDataSource();$db->fetchAll('SELECT * FROM user WHERE camping_id = ?',array($camping_id));
猜你喜欢
  • 2022-01-25
  • 2013-02-17
  • 2014-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2010-10-07
  • 2010-10-13
相关资源
最近更新 更多