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

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

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

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

PHP

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

Q&A

解決済

3回答

4828閲覧

Laravelでphp artisan db:seedでのエラー

notosan_as

総合スコア1

Laravel

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

PHP

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

0グッド

0クリップ

投稿2021/07/11 20:48

編集2021/07/12 08:47

前提・実現したいこと

初めて質問させていただきます。
PHPフレームワーク Laravel入門を進めているのですが、エラーが解消できないため困っております。
現在はマイグレーションファイルを作成し、モデルを作成、シードを作成し実行するとエラーが出ます。
P291~

発生している問題・エラーメッセージ

php artisan db:seedを実行すると

Illuminate\Contracts\Container\BindingResolutionException
Target class [RestdataTableSeeder] does not exist.

のエラーが出ます。
イメージ説明

該当のソースコード

PHP

1<?php 2 3use Illuminate\Support\Facades\Schema; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Database\Migrations\Migration; 6 7class CreateRestdataTable extends Migration 8{ 9 public function up() 10 { 11 Schema::create('restdata', function (Blueprint $table) { 12 $table->increments('id'); 13 $table->string('message'); 14 $table->string('url'); 15 $table->timestamps(); 16 }); 17 } 18 19 public function down() 20 { 21 Schema::dropIfExists('restdata'); 22 } 23} 24

PHP

1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Restdata extends Model 8{ 9 protected $table = 'restdata'; 10 protected $guarded = array('id'); 11 12 public static $rules = array( 13 'message' => 'required', 14 'url' => 'required' 15 ); 16 17 public function getData(){ 18 return $this->id . ':' . $this->message . '(' . $this->url . ')'; 19 } 20}

PHP

1<?php 2 3use Illuminate\Database\Seeder; 4use App\Models\Restdata; 5 6class RestdataTableSeeder extends Seeder 7{ 8 public function run(){ 9 $param = [ 10 'message' => 'Google Japan', 11 'url' => 'https://www.google.co.jp', 12 ]; 13 $restdata = new Restdata; 14 $restdata->fill($param)->save(); 15 16 $param = [ 17 'message' => 'Yahoo Japan', 18 'url' => 'https://www.yahoo.co.jp', 19 ]; 20 $restdata = new Restdata; 21 $restdata->fill($param)->save(); 22 23 $param = [ 24 'message' => 'MSN Japan', 25 'url' => 'https://www.msn.co.jp/ja-jp', 26 ]; 27 $restdata = new Restdata; 28 $restdata->fill($param)->save(); 29 } 30}

PHP

1<?php 2 3use Illuminate\Database\Seeder; 4 5class DatabaseSeeder extends Seeder 6{ 7 public function run() 8 { 9 $this->call(RestdataTableSeeder::class); 10 } 11}

試したこと

composer dump-autoloadは実行してみましたが、解消されませんでした。
Laravel Framework 8.35.1 使用
よろしくお願いいたします。

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

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

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

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

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

hentaiman

2021/07/12 22:32

参考までに聞きたいのですが質問に書いてたソースって「PHPフレームワーク Laravel入門」を丸写ししたものですか?
notosan_as

2021/07/14 20:18

Lravel入門みながら書いたコードです。ほぼ丸写しですが、Laravel8への変更点を変えてあります。
hentaiman

2021/07/15 13:14

なるほど、ほぼ丸写しなんですね 全体的に100%間違っている記述があるようでひどいです 今後動かなかったらその書籍ではなくてこちらのサイト(https://readouble.com/)のコードサンプルを丸コピーした方が解決が早まって良いと思います 動作しなかった理由をより詳しく知りたければpsr4とcomposerで検索すれば良いですが、詳しく知らなくても学習の上で問題は無いです 基本的にその書籍真似して動かなかったら書籍が間違ってると判断して問題無いので、ネット検索して出て来たコードコピペした方がまだ動く可能性あると思います
notosan_as

2021/07/22 05:51

ありがとうございます、こちらのサイトは知らなかったのでとても勉強になります!ネットで検索してコピペしてみるのも手ですね。 今回は2日くらいエラーでつまづいてしまったので、今度からはこちらの方法を試してみます。
guest

回答3

0

Target class [RestdataTableSeeder] does not exist.

ですから、DatabaseSeeder.phpでエラーがでてるのでしょうか?(追記:質問内容の追加によりエラー場所はここで確定ですね) であれば、見つかるように同じディレクトリに配置するか、useで場所を教えてあげるかで直るかもしれません。

もしこれが原因でなければ、そのエラーがどのファイルのどの行で出てるのか?が大事なので、その部分も質問文に追記してください。

投稿2021/07/12 03:14

編集2021/07/12 12:08
AbeTakashi

総合スコア4853

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

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

notosan_as

2021/07/12 08:51

ありがとうございます、エラー画面を追加いたしました。 use部分見直してみます。
guest

0

自己解決

個別にautoloadしても読み込まないことから
namespace Database\Seeders
を追記したら治りました!ありがとうございます。

投稿2021/07/12 21:01

編集2021/07/12 21:02
notosan_as

総合スコア1

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

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

0

composer dump-autoload

したら治るパターンかもね

投稿2021/07/12 13:50

phper.k

総合スコア3923

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

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

notosan_as

2021/07/12 20:35

ありがとうございます、何度かやってみたのですがダメでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問