我正在开发CakePHP 2应用程序。
我的问题是我不知道在用户点击链接后如何执行指令。
我的意图是在会话中写一个值。用户点击标志图标,因此他指定了会话的语言。
然后我会跑
$this->Session->write('Config.language', 'eng');
我该如何解决这个问题?感谢
答案 0 :(得分:0)
我认为,你应该创建一个接受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的值。
答案 1 :(得分:0)
假设您已点击eng
语言链接,即http://mycakeapp.com/?lang=eng
现在,您可以在appcontroller中使用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...
}
}