2016-07-12 12 views
0

在控制器中,我可以使用loadModel方法在cakephp中獲取另一個表數據。但在模型中可能嗎?例如,我使用了ORM/Table類。我定義我的表名使用下面的代碼table method.LikeCakephp 3:如果不使用連接,可以在模型中加載另一個模型?

$this->table('blogs'); 

是否可以聲明另一個表中同樣沒有關聯?

注意:我可以在控制器中執行此操作。

+0

爲什麼你需要做的?讓模型瞭解外部世界而不使用關聯或依賴注入,對我來說聽起來不是一個好主意。 – ndm

+0

我有兩個考勤表和用戶,我想在考勤表裏看到所有的用戶數據,在考勤表中我會加上一個選擇欄添加學生的現狀。這就是爲什麼我需要用戶表格數據出席指數。 –

+0

聽起來像這些表應該是相互關聯的,這又一次提出了問題,爲什麼不呢?你只描述了你想要做的事情,但並不是爲什麼有一個技術需要去做沒有關聯/聯合的事情!此外,您可能想要顯示一些代碼,因爲很難判斷您是在討論是閱讀還是保存,或者... – ndm

回答

0

如果要加載另一個表中的模型,你可以使用TableRegistry Reference

use Cake\ORM\TableRegistry 
$otherTable = TableRegistry::get('other'); 
//do something with the other table 
//example 
$someRecord = $otherTable->find()->first(); 

如果您的模型與您希望通過協會(屬於關聯,hasOne等)來加載其他模型相關那麼你可以直接使用它像這樣的例子:

$this->otherModel->find()->contain()->where(['someCondition' => 'value'])->first() 

說了這麼多,你真的不能定義兩個表成一個,如果這是你正在嘗試做的。您可以在另一個表中加載和使用不同的表,但不能在一個表類下定義兩個表。

我真的不明白,爲什麼你不想在這裏定義的關聯,因爲它聽起來完全像你應該做的,但我希望表註冊表選項涵蓋了你

相關問題