gpt4 book ai didi

cakephp - 如何在 cakephp 3.x 模型中获取当前 Controller 操作

转载 作者:行者123 更新时间:2023-12-02 04:05:13 24 4
gpt4 key购买 nike

我正在使用cakephp 3.x,已将数据库查询放入模型中,我想在其中检查当前 Controller 操作,并基于此我将进行数据库查询。

我知道我可以将 Controller 操作从 Controller 本身传递到模型函数,但是有没有一种方法可以让我只检查模型中当前的 Controller 操作,这样我就不需要将其传递到我的多个函数中,这些函数是仅内部模型。

我的尝试 -- 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 使用的另一种正确方法..

那么有没有其他方法或更频繁的方法可以让我获得当前的 Controller 操作?

任何想法将不胜感激..

谢谢

最佳答案

首先,您应该在模型中使用路由类。所以在顶部你可以像下面这样调用它

使用 Cake\Routing\Router;

然后在初始化函数中您可以检查参数,例如

调试(Router::getRequest());

或者更具体地说,您可以使用

调试(Router::getRequest()->params['action']);

我认为这是仅使用 cakephp 类的解决方案,尽管是一个小技巧。

有关更多功能引用,您可以访问食谱 Router Class

关于cakephp - 如何在 cakephp 3.x 模型中获取当前 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com