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)
我Permission和Role我的文件,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更改他的名字空间的LaratrustRole和LaratrustPermission在最新的版本(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)