ユーザーがホームページにいるかどうかを検出するための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;
}
が、これはあなたが世界的に任意の数の機能を書いて、Yiiのためにどこでも
ファイルhelpers.phpを作り、その中のコンポーネントフォルダ
を保護
を置く|
を-components | -helpers.php
そして、あなたのコンフィグmain.phpファイル
require_once(dirname(__FILE__) . '/../components/helpers.php');
の上にこの行を追加し、その内側に今、この関数は直接呼び出すアプリケーション全体でアクセス可能である、あなたの関数
<?php
function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
?>
を書くhelpers.php is_home_page()どこにいてもあなたの値を返します。
は、私はそれのためのエイリアスを設定する必要がありますか? 'Yii :: setPathOfAlias( 'bootstrap'、dirname(__ FILE__)。 '/../ components/helpers.php');'? – user2636556
それは単純に行うことができれば、そのようにする理由はありません。 –
ありがとう、非常に役に立ちます) –
すべてのヘルパーメソッドを使用してクラスGlobals
を作成することができます。 main.php
セクションcomponents
よりも
class Globals{
public function is_home_page() {
$app = Yii::app();
return $app->controller->route == $app->defaultController;
}
}
セット:たとえばコードに比べて
'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'(ファイル名はクラス名と同じでなければなりません)として、ファイルのより良いセット名を指定します。クラスが 'application/components 'のエイリアスより' protected/components/Globals.php'にある場合よりも。グローバルなもの – CreatoR
からそれらにアクセスするために役立つことを願っています
MyClass::is_home_page();
以下のように、コントローラ、モデルやビューのようなところ2.0、こちらの記事を参照してください。
http://www.yiiframework.com/wiki/747/write-use-a-custom-component-in-yii2-0/
sweetのコンポーネントに置く必要があります。 'config/main.php'でも何も編集する必要はありません!ありがとう! – user2636556