我如何在codeigniter 3.0中的route.php中访问会话

时间:2016-09-26 07:19:49

标签: php codeigniter codeigniter-3

我如何在codeigniter 3.0中的route.php中访问会话

我的应用程序是多语言支持,因此我可以使用会话语言更改我的应用程序数据,标签,静态字幕语言更改

现在我想扩展我的应用程序

表示语言更改时,url也会更改意味着

例如

http://localhost/test/en/controller/method

当spainsh中的语言更改时,url会在下面改变

http://localhost/test/es/controller/method

所以我怎么做呢

请帮助我谢谢

2 个答案:

答案 0 :(得分:0)

您始终可以访问$_SESSION变量。但是,我不确定它是否与CodeIgniter会话库兼容。

session_start();

if(isset($_SESSION['lang']))
{
   // define your routing here
}

答案 1 :(得分:0)

达到我理解的水平,您使用 Codeigniter的会话数据作为标识来表示lang及其相关数据..?

Codeigniter使用类似于使用session_start()和$ _SESSION的超全局会话维护方式。 但建议在除控制器以外的任何地方使用会话数据。

尝试编写一个扩展到所有控制器的超级控制器

            class SuperController extends MY_Controller
        {



            public function __construct()
             {
                // Ensure you run parent constructor
                parent::__construct();    
                $this->checkSess();
             }

            public function checkSess() 
           {
              //Your session check and its associated redirects
              //eg. if $this->session->en==1 redirect to eng lang controller



            }

        }

    Class YourController extends SuperController{
    //Your code

}

或者您可以在Codexworld

中的Codeigniter中使用multilang suppport

或者如果您仍想在routes.php中使用会话。您可以像Alexander所说的那样以标准的PHP方式尝试。但我怀疑它是否正常工作。