如何在 configure:: write & configure:: read in cakephp 2.x 的帮助下读取数据库表值



我们正在将网站从cakephp 1.3迁移到cakephp 2。因此,我面临着使用我们当前的代码元素的问题。

我们有一个表,它有所有默认的内容,我们使用了很多地方,所以我们创建了一个db表设置,所以我们在不同的视图中使用它与configure:: read。

Our Setting Model:

 <?php
class Setting extends AppModel{
var $name   = 'Setting' ;
var $actsAs = array(
    'Multivalidatable',
    );
function getSetting(){
  $data = $this->find('list', array('fields'=>array('name', 'value')));
  if(!empty($data)){
    foreach($data as $key => $value)
        {
            Configure::write($key, $value); 
        }
  }
}

var $validationSets = array(
    // Start Of Admin Validation Set
            'setting' => array(
                    'value'=>array(
                        'notEmpty'=>array(
                        'rule'=>'notEmpty',
                        'message' => 'Value is required.'
                        )
                    )               
            )
        );
}
?>

在这个模型中,我们用configure::write设置了一些字段,现在我们在视图文件中使用了如下

<?php echo Configure::read('Regpopup1.value');?>

,但当我迁移我的代码这个逻辑不工作,请帮助我如何能再次使用此代码迁移在cakephp 2.x

您可以在Cakephp 2.x中使用类似的东西

App::uses('Controller', 'Controller');
class AppController extends Controller {
public function beforeFilter(){
    $this->fetchSettings(); // Don't forget this.
}   
public function fetchSettings(){
        $this->loadModel('Setting');
        $settings_array = $this->Setting->find('all');
        foreach($settings_array as $key=>$value){
            Configure::write($value['Setting']['key'], $value['Setting']['value']);
            }
    }
}

相关内容

最新更新