php - style - Yii revisa si la página de inicio
yii2 html checkboxlist (8)
si por ''página de inicio'' te refieres a ''página de inicio'', entonces puedes verificar esta extensión que hace exactamente esto.
¿Existe algún método o propiedad en Yii para verificar si la página es página principal?
Sé que puedo usar algo como esto:
$controller = Yii::app()->getController();
$isHome = $controller->getAction()->getId() === ''index'' ? true : false;
O póngalo en un método en el controlador principal, pero estoy buscando algo más limpio.
Gracias.
usted puede verificar la página de inicio usando la extensión páginaChecker:
http://www.yiiframework.com/extension/pagechecker
Esto es lo que uso para verificar si estoy en la página principal:
$isFrontpage = false;
if ((Yii::app()->controller->getId().''/''.Yii::app()->controller->getAction()->getId()) == ''site/index'' ) {
$isFrontpage = true;
}
Funciona como un encanto ... incluso en vistas ...
puede comparar el controlador actual y la acción con el controlador y la acción predeterminados.
$controller = Yii::app()->getController();
$default_controller = Yii::app()->defaultController;
$isHome = $controller->getId() === $default_controller && $controller->getAction()->getId() === ''index'';
No pude acceder a la acción predeterminada a través de Yii :: app () como Yii :: app () -> defaultController . sin embargo, usa una cadena para comparar.
aclamaciones
$check_home=$path==''site/index.html''?''TRUE'':''False'';
$path=Yii::$app->request->pathInfo;
hacer según su lógica si check_home es verdadero o falso
Estoy eliminando mis barras laterales en la página de inicio
Si desea verificar la página actual, es decir, la acción es la predeterminada del controlador actual.
$controller = Yii::app()->getController();
$isHome = $controller->action->id === $controller->defaultAction->id ? true : false;
dafeultaction puede no ser siempre ''index'', puede modificarse, por lo que debe compararlo con defaultAction en su lugar ...
Y en la página de inicio si se refiere a la página de defituación del sitio, entonces necesita comparar su controlador también con el controlador defaultController
.
$controller = Yii::app()->getController();
$default_controller = Yii::app()->defaultController;
$isHome = (($controller->id === $default_controller->id) && ($controller->action->id === $controller->defaultAction->id)) ? true : false;
En Yii2:
$controller = Yii::$app->controller;
$default_controller = Yii::$app->defaultRoute;
$isHome = (($controller->id === $default_controller) && ($controller->action->id === $controller->defaultAction)) ? true : false;
if(Url::current() == ''/index.php?r=site%2Findex'' || Url::current() == Url::home()){
Puede ser que esto te ayude :)
<?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'';
}
?>