4

我怎样才能实现看起来像:

if (isset($this->session->flashdata('user_profile'))) {}

没有:

Fatal error: Call to a member function flashdata() on a non-object in ...

问题是,当那个东西没有被设置而不是像人们期望的那样继续时,它会返回一个错误。如果设置好了,一切正常。

...

我也试过:

$tmp = $this->session->flashdata('user_profile');
if ($tmp) {

但无济于事。

4

4 回答 4

5

您不需要isset();导致 CI​​ 方法返回falsetrue

做就是了

 if($this->session->flashdata()){ }

并且您的错误是因为您肯定没有加载会话库:

这样做:

   $this->load->library('session');
if($this->session->flashdata()){ }

如果您喜欢(我更喜欢),您可以自动加载会话库,在您的config/autoload.php文件中更改它:

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

所以现在您不必在任何时候加载会话库,因为 CI 会为您自动加载

于 2013-04-13T10:40:29.957 回答
1

您可以先检查 $this->session 的存在

if (isset($this->session) && isset($this->session->flashdata('user_profile'))) { }

于 2013-04-13T06:31:50.090 回答
0

如果不去config/autoload.php打开会话库并尝试添加会话库,是否会自动加载会话库,如果您自动加载了库,则它看起来像这样$autoload['libraries'] = array('session');,而不是替代方法是:

if(!empty($this->session->flashdata('user_profile')): echo $this->session->flashdata('user_profile'); endif;
于 2014-11-16T19:46:02.793 回答
0

为了正确验证,您必须执行此方法。天气值有时会变为 NULL。

$sessusr=$this->session->userdata('username'); 

 if(isset($sessusr) && trim($sessusr!=''))
 {

//to do

 }
于 2014-09-30T07:03:47.133 回答