質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2277閲覧

laravelでdb:seedを実行してもエラーになる

joe0102

総合スコア13

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/03/08 09:55

laravelでphp artisan db:seed すると次のようなエラーが出ます。
seedを実行する前にcomposer dump-autoloadを実行してもうまくいきません。
色々自分で調べても見ましたが、解決できないため助けてください。。

Laravel Framework 8.31.0
PHP 7.3.24

Illuminate\Contracts\Container\BindingResolutionException Target class [DatabaseSeeder] does not exist. at vendor/laravel/framework/src/Illuminate/Container/Container.php:832 828▕ 829▕ try { 830▕ $reflector = new ReflectionClass($concrete); 831▕ } catch (ReflectionException $e) { ➜ 832▕ throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e); 833▕ } 834▕ 835▕ // If the type is not instantiable, the developer is attempting to resolve 836▕ // an abstract type such as an Interface or Abstract Class and there is +23 vendor frames 24 artisan:37 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)

web.php

1<?php 2 3use Illuminate\Support\Facades\Route; 4use app\Http\Controllers\PostsController; 5 6/* 7|-------------------------------------------------------------------------- 8| Web Routes 9|-------------------------------------------------------------------------- 10| 11| Here is where you can register web routes for your application. These 12| routes are loaded by the RouteServiceProvider within a group which 13| contains the "web" middleware group. Now create something great! 14| 15*/ 16 17// Route::get('/', function () { 18// return view('welcome'); 19// }); 20 21Route::get('/', 'app\Http\Controllers\PostsController@index')->name('top');

PostsTableSeeder.php

1<?php 2 3namespace Database\Seeders; 4 5use app\Post; 6use app\Comment; 7use Illuminate\Database\Seeder; 8use Illuminate\Support\Facades\DB; 9 10class PostsTableSeeder extends Seeder 11{ 12 /** 13 * Run the database seeds. 14 * 15 * @return void 16 */ 17 public function run() 18 { 19 factory(Post::class, 50) 20 ->create() 21 ->each(function ($post) { 22 $comments = factory(Comment::class, 2)->make(); 23 $post->comments()->saveMany($comments); 24 }); 25 } 26}

DatabaseSeeder.php

1<?php 2 3namespace Illuminate\Database\Seeders; 4namespace App\Models\Post; 5use Illuminate\Database\Seeder; 6 7use Database\Seeders; 8 9class DatabaseSeeder extends Seeder 10{ 11 /** 12 * Seed the application's database. 13 * 14 * @return void 15 */ 16 public function run() 17 { 18 $this->call(PostsTableSeeder::class); 19 // \App\Models\User::factory(10)->create(); 20 } 21} 22

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DatabaseSeederクラスのnamespaceが間違っているためではないでしょうか。
以下のように修正するとどうでしょうか。

php

1<?php 2 3namespace Database\Seeders; 4 5use Illuminate\Database\Seeder; 6 7class DatabaseSeeder extends Seeder 8{ 9 // 以下省略

投稿2021/03/08 10:06

編集2021/03/08 10:09
Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

joe0102

2021/03/08 10:36 編集

ありがとうございます! 実行すると、 ``` Class 'app\Post' not found at vendor/laravel/legacy-factories/src/FactoryBuilder.php:232 228▕ if ($this->amount < 1) { 229▕ return (new $this->class)->newCollection(); 230▕ } 231▕ ➜ 232▕ $instances = (new $this->class)->newCollection(array_map(function () use ($attributes) { 233▕ return $this->makeInstance($attributes); 234▕ }, range(1, $this->amount))); 235▕ 236▕ $this->callAfterMaking($instances); ``` のエラーが出てしまいました。。
Lulucom

2021/03/08 10:39

別のエラーですね。PostsTableSeeder.phpで use app\Post; use app\Comment; と書かれていますが正しいですか?以下ではないのかなと思いましたが・・・ use App\Models\Post; use App\Models\Comment;
joe0102

2021/03/08 11:12 編集

書きところが間違えていました!! 解決できました! ありがとうございます!! 助かりました!
Lulucom

2021/03/08 11:12

Post.phpファイルは、app/ ディレクトリではなく、ちゃんと app/Models/ ディレクトリに置いてありますか? Post.phpファイルの namespace は、ちゃんと namespace App\Models; になっていますか? これらは、Comment.phpファイルについても同様です。
Lulucom

2021/03/08 11:13

よかったです^ ^
joe0102

2021/03/08 12:15

本当にありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問