Yii2解析来自referer url的动作名称

时间:2016-08-25 09:50:55

标签: yii2

我想查看之前操作名称的条件。我从Yii::$app->request->referrer获得了上一个操作网址。 现在我只想解析动作名称或者还有另一种方法可以直接获取引用动作名称。

2 个答案:

答案 0 :(得分:8)

您可以通过模拟Request对象并将其传递给UrlManger来轻松解析网址。

想象一下,我们有网址http://example.com/user/42,而UrlManager有以下规则:['user/<id:\d+>' => 'user/view']

$request = new Request(['url' => parse_url(Yii::$app->request->referrer, PHP_URL_PATH)]);
$url = Yii::$app->urlManager->parseRequest($request);
var_dump($url); // ['user/view', 'id' => 42]
很酷,不是吗? :)

答案 1 :(得分:1)

$referrerUrl = trim(Yii::$app->request->referrer, '/');
$urlParts = parse_url($referrerUrl);
$controller_name = explode('/', $urlParts['path'])[1];
$action_name = explode('/', $urlParts['path'])[2];`