0
在控制器中,我可以使用loadModel
方法在cakephp中獲取另一個表數據。但在模型中可能嗎?例如,我使用了ORM/Table類。我定義我的表名使用下面的代碼table
method.LikeCakephp 3:如果不使用連接,可以在模型中加載另一個模型?
$this->table('blogs');
是否可以聲明另一個表中同樣沒有關聯?
注意:我可以在控制器中執行此操作。
在控制器中,我可以使用loadModel
方法在cakephp中獲取另一個表數據。但在模型中可能嗎?例如,我使用了ORM/Table類。我定義我的表名使用下面的代碼table
method.LikeCakephp 3:如果不使用連接,可以在模型中加載另一個模型?
$this->table('blogs');
是否可以聲明另一個表中同樣沒有關聯?
注意:我可以在控制器中執行此操作。
如果要加載另一個表中的模型,你可以使用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()
說了這麼多,你真的不能定義兩個表成一個,如果這是你正在嘗試做的。您可以在另一個表中加載和使用不同的表,但不能在一個表類下定義兩個表。
我真的不明白,爲什麼你不想在這裏定義的關聯,因爲它聽起來完全像你應該做的,但我希望表註冊表選項涵蓋了你
爲什麼你需要做的?讓模型瞭解外部世界而不使用關聯或依賴注入,對我來說聽起來不是一個好主意。 – ndm
我有兩個考勤表和用戶,我想在考勤表裏看到所有的用戶數據,在考勤表中我會加上一個選擇欄添加學生的現狀。這就是爲什麼我需要用戶表格數據出席指數。 –
聽起來像這些表應該是相互關聯的,這又一次提出了問題,爲什麼不呢?你只描述了你想要做的事情,但並不是爲什麼有一個技術需要去做沒有關聯/聯合的事情!此外,您可能想要顯示一些代碼,因爲很難判斷您是在討論是閱讀還是保存,或者... – ndm