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

时间:2015-09-19 06:52:00

标签: cakephp configuration cakephp-model

我们正在将我们的网站从cakephp 1.3迁移到cakephp 2.x,所以我遇到了使用我们当前代码元素的问题。

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

我们的设定模式:

 <?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中再次使用此代码

1 个答案:

答案 0 :(得分:1)

你可以在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']);
            }
    }
}