
Laraelのphp artisan db:seed実行時に発生するエラーの意味と、解決策を教えてください。
2日ほど粘ってるんですが、まったく解決方法がわかりません。
参考にしているサイトはこちらで、コードはそのままコピぺしております。
[環境]
homestead上で実行
PHP 7.3.7
mac os
[困ってる事]
laravelで php artisan db:seedを行うとエラーが発生して先に進めない状況です。
[試したこと]
同じエラーである下記のサイトを参考にしました。
具体的にエラー内容であるApp\Postをuserfactry.phpのApp\Commentの部分に書き換えましたが変わらず。
URL:https://teratail.com/questions/182063
エラー内容
vagrant@homestead:~/code/laravel$ php artisan db:seed Seeding: PostsTableSeeder InvalidArgumentException : Unable to locate factory with name [default] [App\Post]. at /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:269 265| */ 266| protected function getRawAttributes(array $attributes = []) 267| { 268| if (! isset($this->definitions[$this->class][$this->name])) { > 269| throw new InvalidArgumentException("Unable to locate factory with name [{$this->name}] [{$this->class}]."); 270| } 271| 272| $definition = call_user_func( 273| $this->definitions[$this->class][$this->name], Exception trace: 1 Illuminate\Database\Eloquent\FactoryBuilder::getRawAttributes([]) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:292 2 Illuminate\Database\Eloquent\FactoryBuilder::Illuminate\Database\Eloquent\{closure}() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:116 Please use the argument -v to see more details.
databaseSeeder
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call(PostsTableSeeder::class); } }
postTableSeeder
<?php use Illuminate\Database\Seeder; use App\Post; use App\Comment; class PostsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { factory(Post::class, 50) ->create() ->each(function ($post) { $comments = factory(App\Comment::class, 2)->make(); $post->comments()->saveMany($comments); }); } }
userfactory.php
<?php use Faker\Generator as Faker; $factory->define(App\Comment::class, function (Faker $faker) { return [ 'body' => "コメントです。テキストテキストテキストテキストテキストテキスト。\nテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。", ]; });
postfactory.php
<?php use Faker\Generator as Faker; $factory->define(App\Post::class, function (Faker $faker) { return [ 'title' => '投稿のタイトル', 'body' => "本文です。テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。\nテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。", ]; });
__ ここから回答後の追記__
app/Post.php
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = [ 'title', 'body', ]; public function comments() { return $this->hasMany('App\Comment'); } }
###ディレクトリ構造
vagrant@homestead:~/code/laravel$ pwd /home/vagrant/code/laravel
###php artisan db:seed -v
vagrant@homestead:~/code/laravel$ php artisan db:seed -v Seeding: PostsTableSeeder InvalidArgumentException : Unable to locate factory with name [default] [App\Post]. at /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:269 265| */ 266| protected function getRawAttributes(array $attributes = []) 267| { 268| if (! isset($this->definitions[$this->class][$this->name])) { > 269| throw new InvalidArgumentException("Unable to locate factory with name [{$this->name}] [{$this->class}]."); 270| } 271| 272| $definition = call_user_func( 273| $this->definitions[$this->class][$this->name], Exception trace: 1 Illuminate\Database\Eloquent\FactoryBuilder::getRawAttributes([]) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:292 2 Illuminate\Database\Eloquent\FactoryBuilder::Illuminate\Database\Eloquent\{closure}() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:116 3 Illuminate\Database\Eloquent\Model::unguarded(Object(Closure)) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:300 4 Illuminate\Database\Eloquent\FactoryBuilder::makeInstance([]) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:229 5 Illuminate\Database\Eloquent\FactoryBuilder::Illuminate\Database\Eloquent\{closure}() [internal]:0 6 array_map(Object(Closure)) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:230 7 Illuminate\Database\Eloquent\FactoryBuilder::make([]) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:178 8 Illuminate\Database\Eloquent\FactoryBuilder::create() /home/vagrant/code/laravel/database/seeds/PostsTableSeeder.php:17 9 PostsTableSeeder::run() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32 10 call_user_func_array([]) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32 11 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:90 12 Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Object(Closure)) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:34 13 Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), []) /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:576 14 Illuminate\Container\Container::call() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:122 15 Illuminate\Database\Seeder::__invoke() /home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:42

とりあえずスペルが滅茶苦茶なので直してください
☓factry
☓psot
☓larael
失礼しました。
修正いたしました。
とりあえず
Please use the argument -v to see more details.
って書いてあるので書いてある通りにして結果を追記してください
下記のlaravelプロジェクトで実行しましたが、-bash: Please: command not foundと表示されてしまいました。????
vagrant@homestead:~/code/laravel$ pwd
/home/vagrant/code/laravel
php artisan db:seedに-vをつけて実行したらさらに詳細なエラーが出てくるよ
って書いてあるんですよ。
そういうことでしたか、失礼しました汗
エラー内容貼らせて頂きましたが、文字数が多くここでは全て記載することが無理でした。
残りのエラーは後16〜39までありました。

回答1件
あなたの回答
tips
プレビュー