我正在开发一个 CakePHP 2 应用程序。
我的问题是我不知道用户点击链接后如何执行指令。
我的意图是在 Session 中写入一个值。用户单击一个标志图标,因此他指定了他的会话的语言。
然后我会跑
$this->Session->write('Config.language', 'eng');
我该如何解决这个问题?谢谢
我正在开发一个 CakePHP 2 应用程序。
我的问题是我不知道用户点击链接后如何执行指令。
我的意图是在 Session 中写入一个值。用户单击一个标志图标,因此他指定了他的会话的语言。
然后我会跑
$this->Session->write('Config.language', 'eng');
我该如何解决这个问题?谢谢
我认为,您应该创建一个接受 lang 属性的控制器操作,例如。
<?php
// in settings controller
funciton select_lang($lang = 'eng'){
$this->autoRender = false;
$this->Session->write('Config.language', $lang);
return $this->redirect($this->refrer());
}
?>
在视图中,您可以简单地传递 var lang 的值。
假设您点击了eng
语言链接,即http://mycakeapp.com/?lang=eng
beforefilter
现在您可以像这样在应用控制器中使用回调来设置英语语言。
public function beforeFilter() {
if (!empty($this->request->query['lang'])) {
$this->Session->write('Config.language', $this->request->query['lang']);
}
if ($this->Session->check('Config.language')) {
Configure::write('Config.language', $this->Session->read('Config.language'));// setting language here...
}
}