0

我正在开发一个 CakePHP 2 应用程序。

我的问题是我不知道用户点击链接后如何执行指令。

我的意图是在 Session 中写入一个值。用户单击一个标志图标,因此他指定了他的会话的语言。

然后我会跑

$this->Session->write('Config.language', 'eng');

我该如何解决这个问题?谢谢

4

2 回答 2

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 的值。

于 2013-11-07T11:48:54.013 回答
0

假设您点击了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...
    }
}
于 2013-11-07T12:16:05.647 回答