php - Laravel 5.1 ACL 使用 spatie/laravel-permission

标签 php mysql laravel-5 permissions eloquent

我已经阅读了 Laravel 5.1 和 4.2.11 中的策略和门。 Laravel 5.1 的新手。

我在 Laravel 上有一个巨大的项目,我需要构建 ACL 或相同的项目。 我尝试过使用这个名为 spatie/laravel-permission 的包并成功设置。

然后我继续尝试弄清楚迁移是否已创建,并且您可以立即获得一些样板。

虽然我无法理解,但如果管理员想要使用 Controller 中的某些方法直接从前端分配多个角色和权限,该怎么办?

我尝试从 php artisantinker 分配多个角色和权限。

我有一个方法 allocateRole(),我想为管理员直接分配的用户分配多个角色和权限。

包中定义了 allocateRole() 和 GivePermissions() 方法,我将如何利用它们?

就模特而言,我已经在我的模板中尝试过

@foreach($users as $user )
{{$user->email}}
@foreach($user->roles as $role)
{{$role->name}}
@endforeach
@foreach($user->permisssions as $permission )
{{$permission->name}}
@endforeach
@endforeach

这显示了经过身份验证的用户权限。

我的controller.php

public function showRolesandpermission(){

$users = Auth::user();

return view("admin.assignrole", compact("users"));

}

public function update(Request $request, $id){

$user = User::whereID($id)->firstOrFail();


if(count($user)>0)
{
$roles = [];
$permissions = [];
foreach(Role::all() as $r)
            {
                $roles[$r->id] = $r->name;
            }
foreach(Permission::all() as $permissions)
            {
                $permissions[$permissions->id] = $permissions->name;
            }
$role1 = Request::get("role");
$perm = Request::get("permissions");
if(isset($role1) && isset($perm)){

$user->roles->update([
$request->name = $request->name

]);

$user->permissions->update([
$request->name = $request->name
]);

$user->save();

return redirect::back();
} 
}

}

我如何利用它并直接从前端编辑用户权限?我们如何使用诸如多选之类的功能并更新用户角色和权限。

努力尝试,但很少有提示会有所帮助。

最佳答案

查看 Laravel Backpack 的权限管理器。它建立在 spatie/laravel-permission 之上,并且还提供了一个漂亮的 GUI 来管理权限。可能正是您所需要的。

https://github.com/Laravel-Backpack/permissionmanager

关于php - Laravel 5.1 ACL 使用 spatie/laravel-permission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259874/

相关文章:

php - 使用 php 从 postgresql 检索数据并将值存储在变量中

mysql - 将查询结果传递给子查询

mysql - SELECT 列表的表达式不在 GROUP BY 子句中并且包含非聚合列

php - 无法获取我在 FaceBook 上的好友列表的在线状态

php - 使用 PHP 或 JS 将表单值传递到其他页面

php - PDO 准备失败

mysql - phpmyadmin : Din't get auto_increment property on primary key after importing database

php - mysql left join耗时太长

laravel-5 - session 在 Laravel API 中不起作用

laravel - Cloudflare 错误 502 错误网关 - Nginx - Laravel5