我正在尝试使用包 Entrust 在laravel中实现用户角色。我按照youtube教程的说明进行操作,一切顺利,直到我尝试为数据库播种。
我收到以下错误:
[ReflectionException]
RoleTableSeeder类不存在
DatabaseSeeder
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(RoleTableSeeder::class);
$this->call(UserTableSeeder::class);
}
}
UserTableSeeder
use Illuminate\Database\Seeder;
use App\User;
use App\Role;
class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$role_user = Role::where('name', 'User')->first();
$role_author = Role::where('name', 'Author')->first();
$role_admin = Role::where('name', 'Admin')->first();
$user = new User();
$user->first_name = 'Victor';
$user->last_name = 'Visitor';
$user->email = 'visitor@example.com';
$user->password = bcrypt('visitor');
$user->save();
$user->roles()->attach($role_user);
$admin = new User();
$admin->first_name = 'Alex';
$admin->last_name = 'Admin';
$admin->email = 'admin@example.com';
$admin->password = bcrypt('admin');
$admin->save();
$admin->roles()->attach($role_admin);
$author = new User();
$author->first_name = 'Andy';
$author->last_name = 'Author';
$author->email = 'author@example.com';
$author->password = bcrypt('author');
$author->save();
$author->roles()->attach($role_author);
}
}
RoleTableSeeder
use Illuminate\Database\Seeder;
use App\Role;
class RoleTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$role_user = new Role();
$role_user->name = 'User';
$role_user->description = 'A normal User';
$role_user->save();
$role_author = new Role();
$role_author->name = 'Author';
$role_author->description = 'An Author';
$role_author->save();
$role_admin = new Role();
$role_admin->name = 'Admin';
$role_admin->description = 'A Admin';
$role_admin->save();
}
}
答案 0 :(得分:1)
步骤1:在DatabaseSeeder.php中添加(或检查)您的RoleTableeSeeder.php [确保您的班级名称相同]
第2步:运行:composer dump-autoload
第3步:运行php artisan db:seed
将解决您的问题。