実現したいこと
初心者です。
Laravelを使用して、以下のサイトを参考にメモアプリを作成したいです。
1)
https://qiita.com/Alesion30/items/95222f62904ef46f6f45
2)
https://qiita.com/Alesion30/items/97c3bd16c4e20d4bdb72
独学でやっているのですが、わからなくなってしまい、お手すきの際にご教授いただけますと幸いです...!
ご不明な点がございましたら、ご指摘いただけますと幸いです。
発生している問題・分からないこと
php artisan migrate --seed
を実行するとエラーが表示されました。
エラーメッセージ
error
1 INFO Nothing to migrate. 2 3 INFO Seeding database. 4 5 6 Illuminate\Contracts\Container\BindingResolutionException 7 8 Target class [MemoTableSeeder] does not exist. 9 10 at vendor\laravel\framework\src\Illuminate\Container\Container.php:906 11 902▕ 12 903▕ try { 13 904▕ $reflector = new ReflectionClass($concrete); 14 905▕ } catch (ReflectionException $e) { 15 ➜ 906▕ throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e); 16 907▕ } 17 908▕ 18 909▕ // If the type is not instantiable, the developer is attempting to resolve 19 910▕ // an abstract type such as an Interface or Abstract Class and there is 20 21 1 vendor\laravel\framework\src\Illuminate\Container\Container.php:904 22 ReflectionException::("Class "MemoTableSeeder" does not exist") 23 24 2 vendor\laravel\framework\src\Illuminate\Container\Container.php:904 25 ReflectionClass::__construct("MemoTableSeeder")
該当のソースコード
C:\xampp\htdocs\example
1<?php 2 3namespace Database\Seeders; 4 5// use Illuminate\Database\Console\Seeds\WithoutModelEvents; 6// use Illuminate\Database\Seeder; 7 8use Illuminate\Database\Seeder; 9use Illuminate\Database\Eloquent\Model; 10 11// 2024年4月21日追加 12use App\Models\Memo; 13 14class MemoTableSeeder extends Seeder 15{ 16 /** 17 * Run the database seeds. 18 */ 19 public function run() 20 { 21 DB::table('memo')->delete(); //最初に全件削除 22 23 Memo::create([ 24 'title' => '12/13 laravel勉強会', 'content' => 'データの読み取りと追加をやりました。' 25 ]); 26 27 Memo::create([ 28 'title' => '12/6 laravel勉強会', 'content' => 'Viewの表示をしました。' 29 ]); 30 } 31} 32
C:\xampp\htdocs\example
1<?php 2 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateMemoTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('memo', function (Blueprint $table) { 17 $table->bigIncrements('id'); 18 $table->string('title', 24); 19 $table->string('content', 60); 20 }); 21 } 22 23 /** 24 * Reverse the migrations. 25 * 26 * @return void 27 */ 28 public function down() 29 { 30 Schema::dropIfExists('memo'); 31 } 32}
C:\xampp\htdocs\example
1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7 8class Memo extends Model 9{ 10 // table名を指定 11 protected $table = 'memo'; 12 13 // カラムを指定 14 protected $fillable = [ 15 'id', 'title', 'content' 16 ]; 17 18 // created_atを使わない場合はfalseを指定する。 19 public $timestamps = false; 20} 21
C:\xampp\htdocs\example
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7class MemoController extends Controller 8{ 9 // home.blade.phpを表示 10 public function showHome() 11 { 12 return view('home'); 13 } 14 15 // submit.blade.phpを表示 16 public function showSubmit() 17 { 18 return view('submit'); 19 } 20} 21
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:e9S30DLMWgdR+iDYsx7y3LRj73h6JujWMQ/mg9XijLQ= APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=http://localhost APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_STORE=database BCRYPT_ROUNDS=12 LOG_CHANNEL=stack LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mariadb DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=memoApp DB_USERNAME=root DB_PASSWORD= SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null BROADCAST_CONNECTION=log FILESYSTEM_DISK=local QUEUE_CONNECTION=database CACHE_STORE=database CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=log MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}"
<?php namespace Database\Seeders; use App\Models\User; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { Model::unguard(); $this->call('MemoTableSeeder'); Model::reguard(); } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
以下のサイトを参考に、
https://qiita.com/kuma15/items/1687696bdd6be094c780
powershell
1composer dump-autoload
composerのリロード?を行ったのですが、エラーは変化ありませんでした。
以下のサイトを参考に
https://laracasts.com/discuss/channels/code-review/target-class-productseeder-does-not-exist
Laravelのバージョンの違いによる問題なのかなと思い、
PowerShell
1composer create-project laravel/laravel example-app1
を実行して、もう一度Laravelのアプリを作成して、デフォルトの名前空間の設定と、今の設定をチェックしたのですが、変わりありませんでした。
補足
XAMPPを使用しています。
PHP のバージョン: 8.2.12
Apache/2.4.58 (Win64)
サーバの種類: MariaDB
Laravel Installer 1.3.3
Laravel Framework 11.3.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/04/23 05:17
2024/04/23 10:56