我在使用usercontroller actionlogin时使用会话
$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;
}
当我在其他控制器中访问它时
人personcontroller
我需要存储
$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中配置会话……我是否需要一个数据库?
请帮助我对此失去理智
试试这个
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()。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句