我正在尝试创建一个这样的查询:
$spreadsheet = $this->Spreadsheets->get($id, [
'contain' => [
'SpreadsheetTypes.CentersTypes' => function ($q) {
return $q->matching('Centers', function ($q) {
return $q->where(['Centers.id' => 5]);
})->contain(['Items']);
}
]
]);
$ id值由参数传递。但我需要改变
return $q->where(['Centers.id' => 5])
因为我需要将'Centers.id'与我将在此查询中获得的center_id值进行比较。我的意思是,Spreadsheets有一个center_id字段,所以,我需要与它进行比较。 有什么想法吗?
答案 0 :(得分:0)
在函数($ q)之后添加“use”
为例
return $q->matching('Centers', function ($q) use($foo) {
return $q->where(['Centers.id' => $foo]);
})->co