簡體   English   中英

Yii檢查是否主頁

[英]Yii check if homepage

在Yii中是否有buildin方法或屬性來檢查頁面是否是主頁?

我知道我可以使用這樣的東西:

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

或者把它放在主控制器的方法中,但我正在尋找更清潔的東西。

謝謝。

如果要檢查當前頁面,即action是當前控制器的默認值。

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

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;

在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';
  }
?>

如果通過'主頁'表示'首頁',那么您可以檢查此擴展程序是否正確執行此操作。

你可以使用擴展頁面檢查主頁查看:

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 :: app() - > 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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM