Laravel 权限管理的问题
Laravel 运用Entrust 扩展包时,绑定角色和权限的关系时出现了错误。数据库自动生成的permission_id,而现在却出现了permission_model_id,求解
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'permission_model_id' in 'field list'(SQL: insert intoerp_permission_role(permission_model_id,role_model_id) values (1, 2))
关于 LearnKu
控制器代码如下:
public function rolePermissionStore(Request $request)
{
$role = RoleModel::where('id','=',$request->input('role_id'))->first();
$permission = PermissionModel::where('id', '=', $request->input('permission_id'))->first();
PermissionModel 修改成 Permission
RoleModel 修改成 Role
@Kelvin 改了之后添加用户角色绑定报错Cannot redeclare class App\Models\Role
角色与权限报错Cannot redeclare class App\Models\Permission
@拍个黄瓜 相应的业务代码里 use App\Models\PermissionModel 改成 use App\Models\Permission 了吗?
@Kelvin 这个肯定改过了 我运行了
php composer.char dump-autoload现在错误又变成了Class 'App\Models\RoleModel' not found现在的RoleModel,PermissionModel都没有了 怎么还出现这个@拍个黄瓜
1、修改 PermissionModel 为 Permission
2、修改 RoleModel 为 Role
3、通过全局搜索检查项目中 use Permission、RoleModel 的地方,修改为 1、2 中设置的类名
4、composer dumpautoload
如果出现 Cannot redeclare class App\Models\Role 错误信息,请检查项目中是否存在两个 App\Models\Role 类定义
@Kelvin 解决了 config配置文件里面 Entrust里面的Model 没有去掉 谢谢
@Kelvin 权限管理调用can判断,can重命名为may,报一下错误
FatalErrorException in AuthMiddleware.php line 17:
Call to a member function may() on string