찾다

 >  Q&A  >  본문

php - YII2如何获取访问的控制器

在YII2框架中
class BaseController extends Controller{

 public function init()
{
    parent::init();

}

}

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

PHP中文网PHP中文网2785일 전677

모든 응답(3)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-10 17:00:22

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:00:22

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

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-10 17:00:22

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

    class a extends controller {
        public function f();
    }
    class b extends a {
    }

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

    class UserModel {
        public function doSomething();
    }
    class a extends controller {
        public function init() {
            UserModel::doSomething();
        }
    }
    class b extends a {
        public function callDoSomething() {
            UserModel::doSomething();
        }
    }

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

    회신하다
    0
  • 취소회신하다