我正在使用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