【问题标题】:CakePhp - how to access variables inside find->innerJoinWith? [duplicate]CakePhp - 如何访问 find->innerJoinWith 中的变量? [复制]
【发布时间】:2016-02-08 10:44:09
【问题描述】:

我正在尝试查询分配给 CakePHP 中某个项目的用户。我怎么能基本上做到这一点:

    $projectId = //Project ID query result.

    $users = $this->Tickets->Users
        ->find('list', ['limit' => 200])
        ->innerJoinWith(
            'ProjectsUsers', function($q){
                return $q->where(['ProjectsUsers.project_id' => $projectId]);
            }
        );

此代码在不使用变量时有效(例如,将 $projectId 替换为 8),但当我尝试使用变量时,我得到:Undefined variable: projectId

如何将变量传递给innerJoinWith?

【问题讨论】:

  • 你的代码中真的有这一行吗? $projectId = //项目ID查询结果。这不是初始化变量的方式。
  • Ofc 不是,它只是该查询的抽象,因为它可以工作并且与 questin 无关。

标签: php mysql cakephp


【解决方案1】:

如果你的意思是如何从父作用域继承一个变量,你会这样做。

 $users = $this->Tickets->Users
        ->find('list', ['limit' => 200])
        ->innerJoinWith(
            'ProjectsUsers', function($q) use($variableToPass) {
                return $q->where(['ProjectsUsers.project_id' => $variableToPass]);
            }
        );

【讨论】:

  • 是的,谢谢!
猜你喜欢
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 2012-12-24
  • 2013-01-11
  • 1970-01-01
相关资源
最近更新 更多