Session 会话在yii中无法正常工作

Session 会话在yii中无法正常工作,session,yii,Session,Yii,我在什么时候使用会话 用户控制器 操作登录 $userid=User::model()->fetch($username,$password); // var_dump($userid); Yii::app()->SESSION['srid']=$userid; 在用户模型中,我有 public function fetch($username,$password) { $sql="selec

我在什么时候使用会话 用户控制器 操作登录

             $userid=User::model()->fetch($username,$password);
            //  var_dump($userid);
             Yii::app()->SESSION['srid']=$userid;
在用户模型中,我有

 public function fetch($username,$password)
{

    $sql="select id FROM user where ( username='".$username. "' AND password='".$password."')";
    $connection=Yii::app()->db;
    $command=$connection->createCommand($sql);
    $resuserid=$command->queryAll();
    //var_dump($resuserid);
    $result=array();
    foreach($resuserid as $key=>$val)
    {$result[]=$val;}
    return $result;
    }
当我在其他控制器中访问它时

人事控制员

我需要把这些钱存起来

$model->personid=Yii::app()->SESSION['srid'];
结果

var_dump($model->personid);
某物

  array
0 => 
array
  'id' => string '24' (length=2)
确切的id是“24”,但它显示为字符串“24”

错误是

  personid must be a number.
问题是会话将它存储为字符串,但我需要它作为整数,因为personid是整数

我还想知道我们是否需要在config/main中配置会话。。。。。。我需要db吗


请帮帮我,我在这件事上迷失了方向。

从你的代码
$result
是一个数组,不是字符串或整数

{$result[]=$val;}
应该是

{$result=$val;}
查看处理登录的更好方法。

试试这个

public function fetch($username,$password)
{

    $sql="select id FROM user where ( username='".$username. "' AND password='".$password."')";
    $connection=Yii::app()->db;
    $command=$connection->createCommand($sql);
    // use queryColumn if you have to fetch only a single column
    $resuserid=$command->queryColumn();
    //var_dump($resuserid);
    $result=array();
    foreach($resuserid as $val)
    {
         // you can cast each value as integer like this
        $result=(int) $val;

    }
    return $result;
    }
注意:-会话仅将整数存储为整数。问题是您正在将它存储为字符串。

如果查询只返回一个值,则应使用queryScalar()。

尝试以下代码
$model->personid=(int)Yii::app()->会话['srid']intval(Yii::app()->SESSION['srid']),code>personid始终为1这非常容易受到SQL注入的攻击。我不建议您这样做a)使用此方法设置会话,以便最终解决您的问题。哈恩??不要对任何事情失去理智:pIt有时会发生:)继续编码:)