0
如果我寫了下面的查詢:CakePHP3:無法獲取匹配的正常工作
$sites = $this->Sites->find()
->contain(['Agthemes'])
->matching('Agthemes', function ($q) {
return $q->where([
'Agthemes.site_id IS NOT' => null
]);
})
->all();
我只得到Sites
已經存在Agthemes
。
現在我寫一個類似的查詢,但有一個附加的關聯級別:
$users = $this->Users->find('all')
->contain([
'Sites.Agthemes'
])
->matching('Sites.Agthemes', function ($q) {
return $q->where([
'Agthemes.site_id IS NOT' => null
]);
})
->distinct(['Users.id'])
->limit(5)
->all();
而且在這種情況下,我也得到Sites
空Agthemes
。 你能告訴我爲什麼嗎?
編輯
我想補充的關係
SitesTable
$this->hasMany('Agthemes', [
'dependent' => true,
'cascadeCallbacks' => true,
]);
$this->belongsToMany('Users', [
'joinTable' => 'sites_users',
]);
UsersTable
$this->belongsToMany('Sites', [
'targetForeignKey' => 'site_id',
'joinTable' => 'sites_users',
]);
AgthemesTable
$this->belongsTo('Sites');
這裏我的問題是,我無法顯示DebugKit工具欄。看起來Debugkit工作正常,因爲如果我更改文件夾名稱,就會出現錯誤。我正在研究一個子域(test.myweb.com),我看到很多關於這個問題的文章,我想我檢查了一切,在日誌和螢火蟲中看不到任何錯誤!?! – 2ndGAB
我不確定在不同版本之間的事情是,如果我們必須編寫'public $ components = ['DebugKit.Toolbar'];'如你所說[這裏](http://stackoverflow.com/questions/15124398/how-to-install-debugkit-on-cakephp),但我認爲這是cakePHP2相關的,我沒有看到這樣的事情[這裏](https://github.com/cakephp/app/blob/master/src/Controller /AppController.php) – 2ndGAB
沒有得到DebugKit的工作肯定是一個問題,但應該是它自己的問題,包括所有的細節。 – Dave