我在laravel 5.3应用程序中使用klaravel / ntrust包进行ACL。 一切正常,除了删除许可。
配置/ ntrust.php
'admin' => [
User table name
'table' => 'cushbu_admin',
User model
'model' => 'Modules\Admin\Models\Admin',
Ntrust Role Model
'role' => 'Modules\Admin\Models\AdminRole',
Ntrust Roles Table
'roles_table' => 'cushbu_admin_roles',
Ntrust Permission Model
'permission' => 'Modules\Admin\Models\AdminPermission',
Ntrust Permissions Table
'permissions_table' => 'cushbu_admin_permissions',
Ntrust permission_role Table
'permission_role_table' => 'cushbu_admin_permission_role',
Ntrust role_user Table
'role_user_table' => 'cushbu_admin_role_user',
User Foreign key on Ntrust's role_user Table (Pivot)
'user_foreign_key' => 'user_id',
Role Foreign key on Ntrust's role_user and permission_role Tables
(Pivot)
'role_foreign_key' => 'role_id',
Permission Foreign key on Ntrust's permission_role Table (Pivot)
'permission_foreign_key' => 'permission_id',
],
当我尝试删除“我收到此错误
”时SQLSTATE [42S22]:未找到列:1054未知列' admin_role_id' 在'字段列表' (SQL:从中选择
admin_role_id
admin_permission_role
其中admin_permission_id
= 3)
我还没有在任何地方指定admin_role_id,admin_permission_id,而是存在role_id,permission_id。
权限模式
<?php
namespace Modules\Admin\Models;
use Illuminate\Database\Eloquent\Model;
use Klaravel\Ntrust\Traits\NtrustPermissionTrait;
use Vinkla\Hashids\Facades\Hashids;
class AdminPermission extends Model
{
use NtrustPermissionTrait;
/*
* Role profile to get value from ntrust config file.
*/
protected static $roleProfile = 'admin';
protected $table = 'cushbu_admin_permissions' ;
protected $fillable = ['name','display_name'];
//Get hashid
public function getRouteKey() {
return Hashids::encode($this->getKey());
}
}
id,name,display_name,description
permission_id,role_id
答案 0 :(得分:0)
我将permission_id,role_id分别更改为admin_permission_id,admin_role_id在数据库中。解决了这个问题。