3

ドキュメントに従ってユーザーテーブルをシードしています。これは、 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

ユーザー用のartisanを使用してmake:modelを作成する必要があるのではないかと思いましたが、既に存在しています。誰かが私を正しい方向に向けることができますか?私はLaravelを使い始めたばかりで、Laracastとドキュメントを通じてそれをつなぎ合わせていますが、5.0のシードに関するLaracastはありません. artisan が generate:seed を認識しないため、現在シードを生成できないようです。

4

2 に答える 2

7

これは、Laravel 5UserモデルがApp名前空間にあるのに対し、シーダーはグローバル名前空間にあるためです。

以下を使用する必要があります。

 \App\User::create([
        'username' => 'test',
        'firstname' => 'Test',
        'lastname' => 'Test',
        'email' => 'test@domain.com',
        'password' => Hash::make('test'),
        'role' => 'user'
      ]);

またはシーダーファイルの先頭に:

use App\User;

そして今、あなたが示したコードを使用することができます

于 2015-02-12T22:06:05.797 に答える
1

を使用してシーダーの上部にユーザー モデルをインポートするか、use App\User;単に参照する必要があります\App\User::create...User名前空間を介してモデルを参照する必要があります。

于 2015-02-12T22:05:57.030 に答える