Yii检查是否主页

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)

  • 在我的例子中,代码是:`$ controller = Yii :: app() - > getController(); $ isHome = $ controller-> action-> id === $ controller-> defaultAction?true:false;` (2认同)

cod*_*ama 6

这是我用来检查我是否在首页上的内容:

$isFrontpage = false;
if ((Yii::app()->controller->getId().'/'.Yii::app()->controller->getAction()->getId()) == 'site/index'  ) { 
    $isFrontpage = true;
}
Run Code Online (Sandbox Code Playgroud)

像魅力一样......即使在观看......