Yii2从url获取控制器/动作

时间:2016-06-09 14:31:30

标签: yii2

如何在yii2中从url获取控制器/操作。 注意!!!我问Yii2。有答案只能在这个论坛上保留Yii1。

加。 我发现像Yii :: app() - > getUrlManager() - > parseUrl('http://eewee.djn')); 但在yii2

加。 我得到refferer url给anather conrtoller,我想通过yii2解析它的url并得到控制器/动作。

3 个答案:

答案 0 :(得分:2)

这对我有用

$request = new Request(['url' => parse_url(\Yii::$app->request->referrer, PHP_URL_PATH)]);
$url = \Yii::$app->urlManager->parseRequest($request);
list($controller, $actionID) = \Yii::$app->createController($url[0]);

您收到$actionID中的操作和$controller->id中的控制器名称。需要Request对象,因为这样的构造:

list($controller, $actionID) =
    \Yii::$app->createController(parse_url(\Yii::$app->request->referrer, PHP_URL_PATH));

不适用于网址中的参数。

答案 1 :(得分:1)

list($controller, $actionID) = Yii::$app->createController($url);

如果您需要以对象身份操作,请尝试此操作

$action = $controller->createAction($actionID);

答案 2 :(得分:0)

试试这个!

<?php echo Yii::$app->controller->id; // controller id ?>


<?php echo Yii::$app->controller->action->id; // controller action id ?>