Home > Backend Development > PHP Tutorial > YII2如何获取访问的控制器

YII2如何获取访问的控制器

WBOY
Release: 2016-06-06 20:15:50
Original
1313 people have browsed it

在YII2框架中
class BaseController extends Controller{

<code> public function init()
{
    parent::init();

}</code>
Copy after login
Copy after login

}

例如:我要访问user控制器中的某个方法(user控制器继承这个Base控制器),我如何在这个BaseController控制器的init方法中获取到我要访问的控制器和方法呢?

回复内容:

在YII2框架中
class BaseController extends Controller{

<code> public function init()
{
    parent::init();

}</code>
Copy after login
Copy after login

}

例如:我要访问user控制器中的某个方法(user控制器继承这个Base控制器),我如何在这个BaseController控制器的init方法中获取到我要访问的控制器和方法呢?

你可以看一下Yii->$app中的信息。

试试$this->getId()获取controller的名字,$this->getAction()获取action的名字

有必要吗?有很多方法可以达到目的,为啥要选择这种难以理解的方法呢?
A) 如果父类需要这个方法,那么应该在父类中声明

<code>class a extends controller {
    public function f();
}
class b extends a {
}</code>
Copy after login

B) 这是一个特定的处理,因此不特定会在什么时候被调用,我通常使用这种方式

<code>class UserModel {
    public function doSomething();
}
class a extends controller {
    public function init() {
        UserModel::doSomething();
    }
}
class b extends a {
    public function callDoSomething() {
        UserModel::doSomething();
    }
}</code>
Copy after login

总之,我觉得是思路不好,或许你可以说清楚当前的状态和你要达到的目的,我们帮你找一个更好的解决思路?

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template