2016-06-13 4 views
1

シーダーファイルを別々にしたい。laravelでシーダーファイルを分離してきれいに保つにはどうすればいいですか?

例:

use Illuminate\Database\Seeder; 

class DatabaseSeeder extends Seeder 
{ 

    public function run() 
    { 
     $this->call(UsersTableSeeder::class); 
     $this->call(PostsTableSeeder::class); 
    } 
} 

usersTableSeeder.php:

<?php namespace App\Seeds; 

    use Illuminate\Database\Seeder; 
    use App\User; 

    class UserTableSeeder extends Seeder { 

     public function run() 
     { 
      //DB::table('users')->delete(); 

      // user1 
      User::create(array(
       'name' => 'ahmad', 
       'email' => '[email protected]', 
       'password' => 'ahmad' 
      )); 
     } 
    } 

UsersTableSeeder.phpPostsTableSeeder.phpファイル例えばUsersTableSeeder.phpPostsTableSeeder.php、その後はメインのシーダファイル(DatabaseSeeder.php)でそれらを呼び出します同じ ディレクトリにあるDatabaseSeeder.phpはです。

psr-4オートローディングを使用する必要がありますか?どうやって?

+0

投稿した内容はうまくいきませんか? – ceejayoz

+0

それは私に与えます:[ReflectionException]クラスUsersTableSeederが存在しません! in console –

+0

ファイル 'database/seeders/UsersTableSeeder.php'は正確なファイル名で存在し、'クラスUsersTableSeeder extends Seeder'宣言を含んでいますか? Laravelの既定のComposerセットアップは、これらを正しく自動ロードする必要があります。 https://github.com/laravel/laravel/blob/master/database/seeds/DatabaseSeeder.php – ceejayoz

答えて

0

composer dump-autoloadを実行する必要があります。それは私のために働いた。

シーズと移行にはPSR-4を使用するのが面倒です(既にテストがあります)。

関連する問題