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