gpt4 book ai didi

namespaces - 找不到 Laravel 和 Laratrust 命名空间

转载 作者:行者123 更新时间:2023-12-01 11:21:48 25 4
gpt4 key购买 nike

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

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();
}
}

我的 App 目录中有 PermissionRole 文件,分别包含以下内容:

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 也只是为了看看。为什么它看到一个而不是另一个?

最佳答案

Laraturst 在最新版本 (5.0) 中更改了 namespaceLaratrustRoleLaratrustPermission正确的命名空间应该是

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
{
//
}

关于namespaces - 找不到 Laravel 和 Laratrust 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41470897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com