未找到Laravel和Laratrust命名空间

jro*_*fer 3 namespaces laravel-5.3

我一般都是Laravel的新手,我正在尝试使用Laratrust附加组件设置播种器(用户角色和权限附加组件).当我运行时,php artisan db:seed我得到一个错误说Class 'App\Role' not found,并且无法弄清楚为什么它会看到Permissions类而不是Role类.我的播种机看起来像这样:

use Illuminate\Database\Seeder;
use App\Permission;
use App\Role;

class LaratrustSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $owner = new Role();
        $owner->name         = 'owner';
        $owner->display_name = 'Project Owner';
        $owner->description  = 'User is the owner of a given project';
        $owner->save();   
    }
}
Run Code Online (Sandbox Code Playgroud)

PermissionRole我的文件,App与此相应的内容目录:

namespace App;
use Laratrust\LaratrustPermission;

class Permission extends LaratrustPermission
{
    //
}
Run Code Online (Sandbox Code Playgroud)

namespace App;
use Laratrust\LaratrustRole;

class Role extends LaratrustRole
{
    //
}
Run Code Online (Sandbox Code Playgroud)

我检查了我的laratrust.php配置文件'role' => 'App\Role''permission' => 'App\Permission'设置.我重新跑步composer dump-autoload也只是为了看.为什么看到一个而不是另一个?

小智 5

Laraturst更改他的名字空间LaratrustRoleLaratrustPermission在最新的版本(5.0)正确的命名空间

Laratrust\Models\LaratrustRole;
Laratrust\Models\LaratrustPermission;
Run Code Online (Sandbox Code Playgroud)

所以你应该改变你的代码

应用程序\角色

<?php

namespace App;

use Laratrust\Models\LaratrustRole;

class Role extends LaratrustRole
{
    //
}
Run Code Online (Sandbox Code Playgroud)

app \权限

<?php

namespace App;

use Laratrust\Models\LaratrustPermission;

class Permission extends LaratrustPermission
{
    //
}
Run Code Online (Sandbox Code Playgroud)