use*_*134 6 php yii yii-url-manager
在Yii中是否有buildin方法或属性来检查页面是否是主页?
我知道我可以使用这样的东西:
$controller = Yii::app()->getController();
$isHome = $controller->getAction()->getId() === 'index' ? true : false;
Run Code Online (Sandbox Code Playgroud)
或者把它放在主控制器的方法中,但我正在寻找更清洁的东西.
谢谢.
Raj*_*hal 13
如果要检查当前页面,即action是当前控制器的默认值.
$controller = Yii::app()->getController();
$isHome = $controller->action->id === $controller->defaultAction->id ? true : false;
Run Code Online (Sandbox Code Playgroud)
dafeultaction可能并不总是'index',可以更改,所以你需要将它与defaultAction进行比较.
如果你的意思是网站的defult页面,那么你需要将你的控制器与defaultController... 进行比较.
$controller = Yii::app()->getController();
$default_controller = Yii::app()->defaultController;
$isHome = (($controller->id === $default_controller->id) && ($controller->action->id === $controller->defaultAction->id)) ? true : false;
Run Code Online (Sandbox Code Playgroud)
在Yii2:
$controller = Yii::$app->controller;
$default_controller = Yii::$app->defaultRoute;
$isHome = (($controller->id === $default_controller) && ($controller->action->id === $controller->defaultAction)) ? true : false;
Run Code Online (Sandbox Code Playgroud)
这是我用来检查我是否在首页上的内容:
$isFrontpage = false;
if ((Yii::app()->controller->getId().'/'.Yii::app()->controller->getAction()->getId()) == 'site/index' ) {
$isFrontpage = true;
}
Run Code Online (Sandbox Code Playgroud)
像魅力一样......即使在观看......