4

私はyiiフレームワークに取り組んでいます。tbl_settingテーブルと設定モデルがあります。多くのキーと値があります。管理者は、管理パネルからすべての値を変更できます。テーブル構造を以下に示します。

 define           Value     
 COMPANY_NAME     Google    
 META_TITLE       .::My Site::.
 ........  
 ........

コア php では、define() を使用してすべてのキー値を定義していましたが、yii ではどのようにグローバルに使用できますか?

main.php ファイルの params に設定しようとしましたが、設定モデルを使用できません。


私は答えを見つけました。以下のアプローチを使用して実行しました。これが良い方法かどうかはわかりませんが、他の良い方法を知っている人は投稿してください。

新しいコンポーネントを作成しました: WebSetting.php

class WebSetting extends CApplicationComponent
{
    function getValue($key)
    {
        $model = Setting::model()->findByAttributes(array('define'=>$key));
        return $model->value;
    }
}

main.php

'setting'=>array('class'=>'WebSetting'),

そして今、私はどこからでもすべての値にアクセスできます:

 echo Yii::app()->setting->getValue('META_TITLE'); 
 echo Yii::app()->setting->getValue('COMPANY_ADDRESS');
4

2 に答える 2

0

使っていた、

<?php
class SitesettingWidget extends CWidget {

    public function run() {
        $siteData = SiteSetting::model()->findAll(); 

        $this->render('setting', array(
            'siteData'=>$siteData,   
        ));
    }
}

しかし、CApplicationComponentの方が良い方法だと思います...

于 2012-06-21T12:28:02.627 に答える