Yii查看主页


Yii check if homepage

Yii中是否有一个内置方法或属性来检查页面是否为主页?

我知道我可以用这样的东西:

$controller = Yii::app()->getController();
$isHome = $controller->getAction()->getId() === 'index' ? true : false;

或者把它放在主控制器中的一个方法中,但我正在寻找更干净的东西。

谢谢。

如果您想检查当前页面,即操作是当前控制器的默认值。。

$controller = Yii::app()->getController();
$isHome = $controller->action->id === $controller->defaultAction->id ? true : false;

dafeulaction可能并不总是"index",它可以更改,所以您需要将其与defaultAction进行比较。。

至于主页,如果你指的是网站的撤资页面,那么你需要将你的控制器也与defaultController进行比较。。

$controller = Yii::app()->getController();
$default_controller = Yii::app()->defaultController;
$isHome = (($controller->id === $default_controller->id) && ($controller->action->id === $controller->defaultAction->id)) ? true : false;

Yii2:

$controller = Yii::$app->controller;
$default_controller = Yii::$app->defaultRoute;
$isHome = (($controller->id === $default_controller) && ($controller->action->id === $controller->defaultAction)) ? true : false;

这是我用来检查是否在首页的东西:

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

工作起来很有魅力。。。。甚至在视图上。。。

可能会对您有所帮助:)

<?php
  $controllerl = Yii::$app->controller;
  $homecheker = $controllerl->id.'/'.$controllerl->action->id;
  if($homecheker=='site/index')
  {
     //no border on home page
     $mymaincls ='main-nav navbar-fixed-top';
  }else
  {
     //border all other page
     $mymaincls ='main-nav navbar-fixed-top header-border';
  }
?>

如果你所说的"homepage"是指"frontpage",那么你可以检查这个扩展插件。

您可以使用扩展pageChecker:检查主页

http://www.yiiframework.com/extension/pagechecker

您可以将当前控制器和操作与默认控制器和操作进行比较。

$controller = Yii::app()->getController();
$default_controller = Yii::app()->defaultController;
$isHome = $controller->getId() === $default_controller && $controller->getAction()->getId() === 'index';

我无法通过Yii::app()访问默认操作,类似于Yii::pp()->defaultController。但是您使用字符串进行比较。

欢呼

$check_home=$path=='site/index.html'?'TRUE':'False';
$path=Yii::$app->request->pathInfo;

如果check_home为true或false ,请按照您的逻辑操作

我正在删除主页上的边栏

if(Url::current() == '/index.php?r=site%2Findex' || Url::current() == Url::home()){
namespace common'helpers;
class Url extends 'yii'helpers'Url
{
    public static function isHome()
    {
        return (self::home() == Yii::$app->request->url);
    }
}