我们正在将我们的网站从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中再次使用此代码
答案 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']);
}
}
}