为什么smarty 3不考虑codeIgniter会话变量:
$this->session->set_userdata('userId', $res['id']); // this doesn't work
$_SESSION['userId']=$res['id']; // this works.
我正在巧妙地访问这个:
{$smarty.session.userId}
答案 0 :(得分:3)
CI(!!!)不使用PHP超全局$ _SESSION ...
在这里阅读一个很好的方式,将CI的会话暴露给Smarty。
http://ellislab.com/codeigniter/forums/viewthread/110540/#571279
答案 1 :(得分:0)
在codeIgniter
中$this->session->set_userdata()
函数将数据保存在cookie中,因此无法按会话获取数据。
答案 2 :(得分:0)
你可以这样做:
在你的控制器中:
$数据['会话'] = $这 - >会话而>用户数据;
$ this-> smarty_parser->解析(" smarty.php",$ data);
或者,如果您每次都不想在控制器中执行此操作,则可以将其移至智能包装类中。
在这样聪明的包装器(smarty_parser.php)中:
函数解析($ template,$ data,$ return = FALSE)
{
if($ template =='')返回FALSE;
$ CI =& get_instance();
/* here it goes */
$data['session']=$CI->session->userdata;
...
}
然后,您可以使用
访问模板中的所有会话数据{$session.session_id}