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


how i can access session in route.php in codeigniter 3.0

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

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

现在我想扩展我的应用

表示当语言改变时,url也改变表示

例如

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

当更改语言为西班牙语时,时间url更改如下

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

我怎么做呢

please help me thanks

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

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

就我所理解的水平而言,您正在使用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
}

或者您可以在Codeigniter中使用多语言支持,如在Codexworld

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

在autoload.php中初始化会话,如:

$autoload['libraries'] = array('session');

,然后在routes.php中你可以这样访问会话:

session_start();
print_r($_SESSION);