2016-11-25 129 views
0

我是cakephp3中的新成員。我試圖執行下面的查詢,但它顯示我的錯誤。cakephp 3查詢未執行

$lifeinsurances = TableRegistry::get('LifeInsurances')->find("all"); 
$life_insurances = $lifeinsurances->find() 
    ->join([ 
     'table' => 'institutions', 
     'alias' => 'institutions', 
     'type' => 'LEFT', 
     'conditions' => 'institutions.id = LifeInsurances.institute_id', 
    ]); 

我修復了以前的查詢。現在我只能獲得一個表格數據。

編輯

現在我用蛋糕烘焙創建的關聯。但是這次顯示新的錯誤。以下是我的代碼。

public function index() { 
    $this->paginate = [ 
     'contain' => ['Institutions'] 
    ]; 
    $lifeInsurances = $this->paginate($this->LifeInsurances); 
    $this->set(compact('lifeInsurances')); 
    $this->set('_serialize', ['lifeInsurances']); 
} 

內部服務器錯誤

如果我刪除

$this->paginate = [ 
     'contain' => ['Institutions'] 
    ]; 
    $lifeInsurances = $this->paginate($this->LifeInsurances); 

錯誤停止顯示

回答

0

如果你有你的表關聯設置正確(這是他們應該自動如果您使用bake來創建您的代碼),您HOULD能夠簡單地說:

$lifeinsurances = TableRegistry::get('LifeInsurances') 
    ->find('all') 
    ->contain(['Institutions']); 
+0

我沒有任何關聯。我可以像加入蛋糕2.x一樣檢索結果嗎? –

0

如果你想包含的工作,你需要在相應的模型來定義協會(謊言表文件夾中的CakePHP 3.X的情況下)。 既然你說你烘焙了模型,確保在各自的模型中定義關係。

這可能是它拋出錯誤的原因。

正常情況下,當您創建數據庫中的所有表時,應該烘焙模型。由於在烘焙模型後添加表格不會在新模型中定義關係,而必須明確定義它。

看一看這個 - How associations get defined when code is baked in Cakephp

還檢查表中定義的外鍵的命名約定。 Cakephp使用這個命名約定來定義模型之間的關係。

此外,如果您可以發佈錯誤日誌,以便找出更準確的解決方案,那就太好了。