6

ページがホームページかどうかを確認するための組み込みメソッドまたはプロパティが Yii にありますか?

私はこのようなものを使用できることを知っています:

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

または、メインコントローラーのメソッドに入れますが、よりクリーンなものを探しています。

ありがとう。

4

9 に答える 9

13

現在のページを確認したい場合、つまりアクションは現在のコントローラーのデフォルトです。

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

dafeultaction は常に '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;
于 2012-09-10T04:12:35.610 に答える
6

これは、私がフロントページにいるかどうかを確認するために使用するものです。

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

魅力のように機能します....ビューでも...

于 2012-12-09T05:28:08.933 に答える
1

拡張ページCheckerを使用してホームページを確認できます。

http://www.yiiframework.com/extension/pagechecker
于 2012-10-03T19:11:24.323 に答える
1
if(Url::current() == '/index.php?r=site%2Findex' || Url::current() == Url::home()){
于 2015-04-30T16:15:48.710 に答える
1
$check_home=$path=='site/index.html'?'TRUE':'False';

$path=Yii::$app->request->pathInfo;

check_home が true または false の場合、ロジックに従って実行します

ホームページのサイドバーを削除しています

于 2015-01-19T06:37:18.073 に答える
1

「ホームページ」が「フロントページ」を意味する場合、まさにこれを行うこの拡張機能を確認できます。

于 2012-09-09T20:31:56.710 に答える
1
namespace common\helpers;

class Url extends \yii\helpers\Url
{
    public static function isHome()
    {
        return (self::home() == Yii::$app->request->url);
    }
}
于 2019-03-30T19:02:42.913 に答える