2015-08-10 17:10:28 5623次浏览 3条回答 1 悬赏 10 金钱
$controllerID = Yii::$app->controller->id;
$actionID = Yii::$app->controller->action->id;

报错

PHP Notice – yii\base\ErrorException
Trying to get property of non-object

最佳答案

  • 500miles 发布于 2015-08-10 18:30 举报

    首先, 这两行代码没什么问题.

    你肯定是用错了地方,

    module里面 实例化controller[createController] 之后, 才将controller绑定到Yii::$app

    而绑定action到当前controller的节点 则在 controller runAction之后

    因此 , 你在module没有执行 runAction 之前, Yii::$app->controllernull

    所以 moduleinit 事件之前(包括init事件内), Yii::$app->controller 都是 null

    controllerbeforeAction 事件之前(包括beforeACtion事件内), Yii::$app->controller->action 也是没值的;;;

  • 回答于 2015-08-10 17:34 举报

    调用的位置不对吧。
    当前位置,没有那个对象.

    3 条回复
    回复于 2015-08-10 17:36 回复

    我就在controller下面调用的,这个调用有什么限制吗?

    回复于 2015-08-10 17:40 回复

    这两个,到底是哪一个报错了?

    回复于 2015-08-10 17:44 回复

    两个都报

  • 回答于 2015-08-10 18:12 举报

    在控制器和视图里都可以用的,在控制器里也可以直接用$this->controller->id获取~

您需要登录后才可以回答。登录 | 立即注册
piqiu2000
试用期

piqiu2000

注册时间:2015-08-10
最后登录:2015-09-14
在线时长:2小时25分
  • 粉丝1
  • 金钱10
  • 威望0
  • 积分30

热门问题