我正在使用cakephp 3.x已經把模型中的數據庫查詢,我想檢查當前的控制器動作,並基於這我會讓我的數據庫查詢。如何在cakephp 3.x模型中獲得當前控制器的動作
我知道我可以將控制器動作從我的控制器本身傳遞給我的模型函數,但有沒有辦法我只能檢查我的模型中的當前控制器動作,這樣我就不需要將它傳遞給我的多個函數只在模型內部。
我嘗試 - UsersTable.php
public function initialize(array $config)
{
parent::initialize($config);
$this->table('users');
$this->primaryKey('user_id');
echo '<pre>';
print_r($GLOBALS);
exit;
}
到目前爲止,如果我這樣做,我響應了一個數組,其中我發現了這一點,在其他事情最好的結果陣列
[REQUEST_URI] => /5p_group/users/add
我M還嘗試使用此
echo '<pre>';
print_r($GLOBALS['_SERVER']['HTTP_REFERER']);
exit;
這給了我這個輸出
http://localhost/5p_group/users/archived
所以最終我得到我想要的結果,但我想這CakePHP的3.x中使用另一種方法正確..
那麼,有沒有任何其他方式或更頻繁的方式,我可以得到我目前的控制器行動?
任何想法可以理解..
感謝
這是一個明顯違反了關注點分離的,即一個非常糟糕的主意訪問的菜譜,你的模型是不是應該瞭解外面的世界,做這樣的決定!如果一個控制器需要一個模型的數據,那麼它會告訴模型它想要什麼數據,而不是相反!如果你詳細說明你需要查詢_什麼時候正確_什麼時候你可以得到更好的幫助。 – ndm
我知道它沒有道理..但知道這些東西是錯誤的嗎? –
知道東西是絕對不會錯的,不喜歡不好的做法以及如何避免它們。如果你想知道更多,比如如何以正確的方式來做,那麼請詳細說明你正在試圖解決的實際技術問題,即已經提到的als,「你究竟需要什麼來查詢_什麼時候正確?」。 。 – ndm