在后台设置yii的配置文件

本文介绍了如何在 Yii 框架中动态设置后端应用参数,包括创建配置表单、控制器和视图,实现参数的动态修改和保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.原出处:http://www.yiiframework.com/wiki/304/setting-application-parameters-dynamically-in-the-back-end

二具体:

1.创建model create protected/backend/models/ConfigForm.php

<?php
class ConfigForm extends CFormModel
{
    public $adminEmail;
    public $paramName;
 
    public function rules()
    {
        return array(
            array('adminEmail, paramName','required'),
        );
    }
}
?>

2.创建controller protected/backend/controllers/ConfigController.php

<?php
class ConfigController extends Controller
{
    public function actionIndex()
    {
        $file = dirname(__FILE__).'/../../../config/params.inc';
        $content = file_get_contents($file);
        $arr = unserialize(base64_decode($content));
        $model = new ConfigForm();
        $model->setAttributes($arr);
 
        if (isset($_POST['ConfigForm']))
        {
            $config = array(        
                'adminEmail'=>$_POST['ConfigForm']['adminEmail'],
                'paramName'=>$_POST['ConfigForm']['paramName'],
            );
            $str = base64_encode(serialize($config));
            file_put_contents($file, $str);
            Yii::app()->user->setFlash('config', Yii::t('app', 'Your new options have been saved.'));
            $model->setAttributes($config);
        }
 
        $this->render('index',array('model'=>$model));
    }
}
?>

3.创建view protected/backend/views/config/index.php

<div class="form">
 
<?php $form = $this->beginWidget('CActiveForm', array(
    'id' => 'config-form',
    'enableAjaxValidation' => false,
));
?>
    <h1><?php echo Yii::t('app', 'Options'); ?></h1>
 
    <?php if(Yii::app()->user->hasFlash('config')):?>
    <div class="info">
        <?php echo Yii::app()->user->getFlash('config'); ?>
    </div>
    <?php endif; ?>
 
    <p class="note">
        <?php echo Yii::t('app', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('app', 'are required'); ?>.
    </p>
 
    <?php echo $form->errorSummary($model); ?>
 
    <div class="row">
    <?php echo $form->labelEx($model,'adminEmail'); ?>
    <?php echo $form->textField($model, 'adminEmail'); ?>
    <?php echo $form->error($model,'adminEmail'); ?>
    </div><!-- row -->
    <div class="row">
    <?php echo $form->labelEx($model,'paramName'); ?>
    <?php echo $form->textField($model, 'paramName'); ?>
    <?php echo $form->error($model,'paramName'); ?>
    </div><!-- row -->
    <div class="row buttons">
    <?php echo CHtml::submitButton(Yii::t('app', 'Save')); ?>
    </div>
 
<?php $this->endWidget(); ?>
</div><!-- form -->

4.创建两个文件

create the following config files under protected/config:

  • params.inc
  • params.php

5.编辑 protected/config/main.php

// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>require(dirname(__FILE__).'/params.php'),

6.编辑 protected/config/params.php

<?php
$file = dirname(__FILE__).'/params.inc';
$content = file_get_contents($file);
$arr = unserialize(base64_decode($content));
return CMap::mergeArray(
        $arr,
        array(
            'salt'=>'P@bl0',
            'someOption'=>true,
        )
    )
;
?>

转载于:https://www.cnblogs.com/sbfnxk201/p/4025582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值