总的来说,我是Laravel的新手,我正在尝试设置一个带有Laratrust插件(用户角色和权限加载项)的播种机。当我运行php artisan db:seed时,我会看到一个错误,即Class 'App\Role' not found,它无法理解为什么它会看到权限类而不是角色类。我的播种机看起来是这样的:
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();
}
}在我的Permission目录中有Role和App文件,它们各自的内容如下:
namespace App;
use Laratrust\LaratrustPermission;
class Permission extends LaratrustPermission
{
//
}和
namespace App;
use Laratrust\LaratrustRole;
class Role extends LaratrustRole
{
//
}我已经检查了我的laratrust.php配置文件是否设置了'role' => 'App\Role'和'permission' => 'App\Permission'。我也重新运行了composer dump-autoload,只是想看看。为什么它看到的是一个而不是另一个?
发布于 2017-10-07 16:18:29
Laraturst在最新版本(5.0)中为LaratrustPermission和LaratrustRole更改了它们的名称空间,正确的命名空间将是
Laratrust\Models\LaratrustRole;
Laratrust\Models\LaratrustPermission;所以你应该把你的代码
应用程序\角色
<?php
namespace App;
use Laratrust\Models\LaratrustRole;
class Role extends LaratrustRole
{
//
}和app\Permission
<?php
namespace App;
use Laratrust\Models\LaratrustPermission;
class Permission extends LaratrustPermission
{
//
}发布于 2018-06-24 20:50:03
你应该更新自己的拉腊铁锈5.0文档。用于角色的Laratrust 5命名空间现在是*
拉氏锈模型
权限的命名空间是:
拉腊铁锈模型
更新您的应用程序\角色
<?php
namespace App;
use Laratrust\Models\LaratrustRole;
class Role extends LaratrustRole
{
}更新您的APP\Permission
namespace App;
use Laratrust\Models\LaratrustRole;
class Role extends LaratrustRole
{
}https://stackoverflow.com/questions/41470897
复制相似问题