Php 使用codeigniter从db检入_阵列
如何使用以下代码片段实现检查角色?我想要实现的是能够根据分配的角色对用户进行身份验证<代码>在数组中()不适用于返回的数组 返回的数组是:Php 使用codeigniter从db检入_阵列,php,mysql,codeigniter,codeigniter-3,Php,Mysql,Codeigniter,Codeigniter 3,如何使用以下代码片段实现检查角色?我想要实现的是能够根据分配的角色对用户进行身份验证在数组中()不适用于返回的数组 返回的数组是: array (size=2) 0 => object(stdClass)[40] public 'role' => string '2' (length=1) 1 => object(stdClass)[41] public 'role' => string '5' (length=1) 数据: 模型 控制器: public functio
array (size=2) 0 => object(stdClass)[40] public 'role' => string '2' (length=1) 1 => object(stdClass)[41] public 'role' => string '5' (length=1)
数据:
模型
控制器:
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>";
}
}
公共功能用户角色()
{
$roles=$this->Master_model->user_roles('4');
if(在_数组中(“1”,$roles))
{
回显“Admin
”;
}
if(在_数组中(“2”,$roles))
{
呼应“老师
”;
}
if(在_数组中(“5”$roles))
{
呼应“学术的
”;
}
}
在数组中
在您的代码中无法工作。你需要做两个改变
首先-将DB输出更改为array,现在您将获得objetct:
$userdata = $userDB->query("SELECT role
FROM role_assignment
WHERE user_id = $id
")->result_array();
Second-通过DB结果返回修改后的数组:
$user_roles = array();
foreach ($userdata as $val) {
$user_roles[] = $val['role'];
}
return $user_roles;
这两项更改都在您的模型的用户角色功能中。您的问题是什么?你有什么问题吗?谢谢你;但是第二个代码应该放在哪里呢?如果它返回$user\u roles,那么foreach的用途是什么?但是我将$value['role']更改为$val['role']
$userdata = $userDB->query("SELECT role
FROM role_assignment
WHERE user_id = $id
")->result_array();
$user_roles = array();
foreach ($userdata as $val) {
$user_roles[] = $val['role'];
}
return $user_roles;