我正在使用Laravel 4中的用户自定义权限,登录权限(json字符串)存储在 Auth::user()->permissions.
中,如下所示:
$permissions =array(101,102);
DB::table('user')->where('id', Auth::user()->id)->update(['permissions' => json_encode($permissions)]);
但是每次我检查权限时都需要将其解码为数组:
if(in_array(1000, json_decode(Auth::user()->permissions)){
}
但是我希望能让它像以下一样工作:
if(in_array(1000, Auth::user()->usr_rights){
}
答案 0 :(得分:1)
您可以为模型添加一个Accessor:
public function getPermissionsAttribute($value)
{
return json_decode($value);
}
你需要做的就是:
if(in_array(1000, Auth::user()->permissions){
}
答案 1 :(得分:0)
您可以使用Implode
这不是最好的方式,但有效。
示例:
$array = array('lastname', 'email', 'phone');
comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
U可以将此字符串保存在用户表的附加行中。
然后使用Explode
将其转换回来 $pizza = "piece1, piece2, piece3, piece4, piece5, piece6";
$pieces = explode(",", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2