CakePhp - 如何在find->innerJoinWith中访问变量


CakePhp - how to access variables inside find->innerJoinWith?

我正在尝试查询分配给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]);
            }
        );

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

如何将变量传递到 innerJoinWith?

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

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