【发布时间】:2017-02-12 04:26:01
【问题描述】:
我正在使用 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
我也在尝试使用这个
echo '<pre>';
print_r($GLOBALS['_SERVER']['HTTP_REFERER']);
exit;
这给了我这个输出
http://localhost/5p_group/users/archived
所以最终我得到了我想要的结果,但我想要另一种合适的方法,cakephp 3.x 使用..
那么有没有其他方法或更频繁的方法可以让我获得当前的控制器操作?
任何想法将不胜感激..
谢谢
【问题讨论】:
-
这明显违反了关注点分离,即一个非常糟糕的主意,您的模型不应该了解外部世界并做出这样的决定!如果控制器想要来自模型的数据,那么它会告诉模型它想要什么数据,而不是相反!如果您详细说明究竟是什么您需要查询究竟是什么时候,您可能会得到更好的帮助。
-
我知道这没有意义..但是知道这些东西有错吗?
-
了解一些事情永远不会错,不,比如不良做法以及如何避免它们。如果您想了解更多信息,例如如何以正确的方式进行操作,请详细说明您正在尝试解决的实际技术问题,即前面已经提到过,“究竟是什么需要查询究竟是什么时候?”。
-
我同意你的这一说法,这对我来说很有意义。谢谢
标签: cakephp cakephp-3.0 cakephp-3.x