任何人都可以通过以下代码段帮助我归档检查角色。我想要达到的目的是能够根据指定的角色对用户进行身份验证 in_array()不适用于返回的数组。 返回的数组是:
array (size=2) 0 => object(stdClass)[40] public 'role' => string '2' (length=1) 1 => object(stdClass)[41] public 'role' => string '5' (length=1)
我感谢任何帮助。感谢
DB TABLE
id user_id role
1 4 2
2 4 5
模型
//get logged user roles
public function user_roles($id){
$userDB = $this->quickDB();
$userdata = $userDB->query("SELECT role
FROM role_assignment
WHERE user_id = $id
")->result();
$userDB->close();
return ($userdata);
}
控制器:
public function user_roles()
{
$roles=$this->Master_model->user_roles('4');
if (in_array("1", $roles))
{
echo "Admin<br>";
}
if (in_array("2", $roles))
{
echo "Teacher<br>";
}
if (in_array("5", $roles))
{
echo "Academic<br>";
}
}
答案 0 :(得分:0)
in_array
无效。您需要进行两项更改。
首先 - 将您的数据库输出更改为数组,现在您将获得objetct:
$userdata = $userDB->query("SELECT role
FROM role_assignment
WHERE user_id = $id
")->result_array();
第二步 - 通过DB结果迭代并返回修改后的数组:
$user_roles = array();
foreach ($userdata as $val) {
$user_roles[] = $val['role'];
}
return $user_roles;
两个更改都在模型中的user_roles函数内。