我们正在将网站从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']);
}
}
}