Laravel 5 播种
Posted
技术标签:
【中文标题】Laravel 5 播种【英文标题】:Laravel 5 Seeding 【发布时间】:2015-04-13 20:16:26 【问题描述】:我正在关注docs 为用户表做种,其中显示正在使用 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
我想也许我需要为用户使用工匠制作:模型,但它已经存在。谁能指出我正确的方向我只是从 Laravel 开始并通过 Laracast 和文档将它拼凑在一起,但是没有 Laracast 播种 5.0。您现在似乎无法生成种子,因为工匠无法识别 generate:seed
【问题讨论】:
【参考方案1】:这是因为在 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;
现在你可以使用你展示的代码了
【讨论】:
【参考方案2】:您需要在播种器顶部使用use App\User;
导入您的用户模型,或者只需通过\App\User::create...
引用它。您需要通过其命名空间引用User
模型。
【讨论】:
以上是关于Laravel 5 播种的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel 5 中的 --force 进行生产时,数据库卡在使用播种机迁移