在laravel

时间:2017-03-11 11:47:53

标签: php laravel

我正在尝试使用包 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();
    }
}

1 个答案:

答案 0 :(得分:1)

步骤1:在DatabaseSeeder.php中添加(或检查)您的RoleTableeSeeder.php [确保您的班级名称相同]

第2步:运行:composer dump-autoload

第3步:运行php artisan db:seed

将解决您的问题。