Laravel 5 播种
Laravel 5 Seeding
我正在关注 docs 以播种用户 table,这表明 User::create 正在使用
class UserTableSeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
User::create([
'username' => 'test',
'firstname' => 'Test',
'lastname' => 'Test',
'email' => 'test@domain.com',
'password' => Hash::make('test'),
'role' => 'user'
]);
}
}
但它一直在说:
PHP Fatal error: Class 'User' not found in /home/vagrant/projects/roopla/database/seeds/UserTableSeeder.php on line 17
我想也许我需要 make:model 为用户使用 artisan,但它已经存在。任何人都可以指出我正确的方向我只是从 Laravel 开始并通过 Laracast 和文档将它拼凑在一起,但是 5.0 的种子没有 Laracast。看来你现在不能生成种子了,因为 artisan 不认识 generate:seed
您需要使用 use App\User;
在播种器顶部导入您的用户模型,或者仅通过 \App\User::create...
引用它。您需要通过它的命名空间引用 User
模型。
那是因为在 Laravel 5 中,User
模型在 App
命名空间中,而您的播种器在全局命名空间中。
你应该使用:
\App\User::create([
'username' => 'test',
'firstname' => 'Test',
'lastname' => 'Test',
'email' => 'test@domain.com',
'password' => Hash::make('test'),
'role' => 'user'
]);
或者在种子文件的开头:
use App\User;
现在您可以使用您显示的代码了
我正在关注 docs 以播种用户 table,这表明 User::create 正在使用
class UserTableSeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
User::create([
'username' => 'test',
'firstname' => 'Test',
'lastname' => 'Test',
'email' => 'test@domain.com',
'password' => Hash::make('test'),
'role' => 'user'
]);
}
}
但它一直在说:
PHP Fatal error: Class 'User' not found in /home/vagrant/projects/roopla/database/seeds/UserTableSeeder.php on line 17
我想也许我需要 make:model 为用户使用 artisan,但它已经存在。任何人都可以指出我正确的方向我只是从 Laravel 开始并通过 Laracast 和文档将它拼凑在一起,但是 5.0 的种子没有 Laracast。看来你现在不能生成种子了,因为 artisan 不认识 generate:seed
您需要使用 use App\User;
在播种器顶部导入您的用户模型,或者仅通过 \App\User::create...
引用它。您需要通过它的命名空间引用 User
模型。
那是因为在 Laravel 5 中,User
模型在 App
命名空间中,而您的播种器在全局命名空间中。
你应该使用:
\App\User::create([
'username' => 'test',
'firstname' => 'Test',
'lastname' => 'Test',
'email' => 'test@domain.com',
'password' => Hash::make('test'),
'role' => 'user'
]);
或者在种子文件的开头:
use App\User;
现在您可以使用您显示的代码了