如何在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);