我創建了一個is_home_page()
函數來檢測用戶是否在主頁上,但我不確定我應該把它放在哪裏,以便我可以用在所有視圖和主題上?Yii在哪裏放置自定義全局函數?
function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
我創建了一個is_home_page()
函數來檢測用戶是否在主頁上,但我不確定我應該把它放在哪裏,以便我可以用在所有視圖和主題上?Yii在哪裏放置自定義全局函數?
function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
創建一個文件MyClass.php內部組件
你可以寫入裏面的靜態功能,如
public static function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
可以從任何可以訪問其中類似的控制器,型號或查看下面
MyClass::is_home_page();
希望這將有助於你寫在全球任意數量的功能,並從任何地方
使文件helpers.php並把它內部的元件保護
文件夾
| -components
| -helpers.php
而且在你的配置main.php文件
require_once(dirname(__FILE__) . '/../components/helpers.php');
的頂部添加此行,內部的helpers.php寫你的函數
<?php
function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
?>
現在,這個功能是在整個應用程序直接訪問調用is_home_page()任何地方,它會返回你的價值。
我應該爲它設置一個別名? 'Yii :: setPathOfAlias('bootstrap',dirname(__ FILE__)。'/../ components/helpers.php');'? – user2636556
沒有必要,如果可以簡單地完成,那麼你爲什麼會這樣做。 –
謝謝,非常有用) –
您可以使用全部助手方法創建類Globals
。例如:
class Globals{
public function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
}
比main.php
節components
集:
'globals' => array(
'class' => 'alias.to.location.Globals'
)
比在代碼中,你可以使用這個Yii::app()->globals->is_home_page()
在'protected/components/Helpers.php'對嗎?和'alias.to.location.Globals'會是'application.components.Helpers'? – user2636556
爲什麼不把它放在main.php的''import'=> array()'中? – user2636556
更好地爲文件設置名稱爲Globals.php(文件名必須等於類的名稱)。比如果類將在'protected/components/Globals.php'中,而不是別名'application.components。Globals' – CreatoR
訪問他們的Yii 2.0,請參閱這篇文章:
http://www.yiiframework.com/wiki/747/write-use-a-custom-component-in-yii2-0/
的組件中,不必在'config/main.php'中編輯任何東西!謝謝! – user2636556