Yii中是否有一个buildin方法或属性来检查页面是否是主页?我知道我可以用这样的东西:
$controller = Yii::app()->getController(); $isHome = $controller->getAction()->getId() === 'index' ? true : false;
或者把它放在主控制器的一个方法中,但我正在寻找更干净的东西。
m528fe3b1#
如果你想检查当前页面,即动作是当前控制器的默认值。
$controller = Yii::app()->getController(); $isHome = $controller->action->id === $controller->defaultAction->id ? true : false;
dafeultaction可能不总是'index',它可以更改,因此您需要将其与defaultAction进行比较..如果你是指网站的默认页面,那么你需要将你的控制器与defaultController进行比较。
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;
vsaztqbk2#
这是我用来检查我是否在头版:
$isFrontpage = false; if ((Yii::app()->controller->getId().'/'.Yii::app()->controller->getAction()->getId()) == 'site/index' ) { $isFrontpage = true; }
工作起来就像一个魅力....即使在意见...
2mbi3lxu3#
可能这对你有帮助:)
<?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'; } ?>
bpzcxfmw4#
如果"主页“指的是”头版“,那么您可以选择this extension,它可以完成此操作。
7bsow1i65#
您可以使用扩展pageChecker来检查主页:
http://www.yiiframework.com/extension/pagechecker
gk7wooem6#
您可以将当前控制器和操作与默认控制器和操作进行比较。
$controller = Yii::app()->getController(); $default_controller = Yii::app()->defaultController; $isHome = $controller->getId() === $default_controller && $controller->getAction()->getId() === 'index';
我无法通过Yii::app()访问默认操作,就像Yii::app()-〉defaultController一样。但是您使用字符串进行比较。欢呼声
x7rlezfr7#
$check_home=$path=='site/index.html'?'TRUE':'False'; $path=Yii::$app->request->pathInfo;
如果check_home为true或false,则按照您的逻辑执行我正在删除主页上的边栏
w41d8nur8#
if(Url::current() == '/index.php?r=site%2Findex' || Url::current() == Url::home()){
bqujaahr9#
namespace common\helpers; class Url extends \yii\helpers\Url { public static function isHome() { return (self::home() == Yii::$app->request->url); } }
9条答案
按热度按时间m528fe3b1#
如果你想检查当前页面,即动作是当前控制器的默认值。
dafeultaction可能不总是'index',它可以更改,因此您需要将其与defaultAction进行比较..
如果你是指网站的默认页面,那么你需要将你的控制器与
defaultController
进行比较。在Yii2中:
vsaztqbk2#
这是我用来检查我是否在头版:
工作起来就像一个魅力....即使在意见...
2mbi3lxu3#
可能这对你有帮助:)
bpzcxfmw4#
如果"主页“指的是”头版“,那么您可以选择this extension,它可以完成此操作。
7bsow1i65#
您可以使用扩展pageChecker来检查主页:
gk7wooem6#
您可以将当前控制器和操作与默认控制器和操作进行比较。
我无法通过Yii::app()访问默认操作,就像Yii::app()-〉defaultController一样。但是您使用字符串进行比较。
欢呼声
x7rlezfr7#
如果check_home为true或false,则按照您的逻辑执行
我正在删除主页上的边栏
w41d8nur8#
bqujaahr9#