如何在yii2中从url获取控制器/操作。 注意!!!我问Yii2。有答案只能在这个论坛上保留Yii1。
加。 我发现像Yii :: app() - > getUrlManager() - > parseUrl('http://eewee.djn')); 但在yii2
加。 我得到refferer url给anather conrtoller,我想通过yii2解析它的url并得到控制器/动作。
答案 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 ?>