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

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

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

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

Q&A

解決済

2回答

2270閲覧

Target class [RestappController] does not exist. エラーが出て解決できません

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

0グッド

0クリップ

投稿2021/02/08 20:22

編集2021/02/10 17:42

このエラーはコードの打ち間違いがほとんどでということで、探してみましたが
どこが悪いのかわかりません。参考書自体にアドレスの間違いや、laravel8仕様の書き方ではないところがあり、苦戦してあと一歩のところまで来ました。
文字数の加減で直したところを書けないのですが、よろしくお願いいたします。

//1.C:\XAMPP\htdocs\laravelapp\database\migrations\2021_02_08_163759_reate_restdata_table.php <?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateRestdataTable extends Migration{ public function up(){ Schema::create('restdata', function (Blueprint $table) { $table->increments('id'); $table->string('message'); $table->string('url'); $table->timestamps(); }); } public function down(){ Schema::dropIfExists('restdata'); } }
//2.C:\XAMPP\htdocs\laravelapp\app\Models\Restdata.php <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Restdata extends Model{ protected $table = 'restdata'; protected $guarded = array('id'); public static $rules = array( 'message' => 'required', 'url' => 'required' ); public function getData(){ return $this->id . ':' . $this->mssage . '(' . $this->url . ')'; } }
//3.C:\XAMPP\htdocs\laravelapp\database\seeders\RestdataTableSeeder.php <?php use Illuminate\Database\Seeder; namespace App\Models; class RestdataTableSeeder extends Seeder{ public function run(){ $param = [ 'message' => 'Google Japan', 'url' => 'https://www.google.co.jp', ]; $restdata = new Restdata; $restdata->fill($param)->save(); $param = [ 'message' => 'Yahoo Japan', 'url' => 'https://www.yahoo.co.jp', ]; $restdata = new Restdata; $restdata->fill($param)->save(); $param = [ 'message' => 'MSN Japan', 'url' => 'http://www.msn.com/ja-jp', ]; $restdata = new Restdata; $restdata->fill($param)->save(); } }
//4. C:\XAMPP\htdocs\laravelapp\database\seeders\DatabaseSeeder.php <?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder{ public function run(){ $this->call(RestdataTableSeeder::class); } }

php

1 2//5.C:\XAMPP\htdocs\laravelapp\app\Http\Controllers\RestappController.php 3<?php 4 5namespace App\Http\Controllers; 6 7use Illuminate\Http\Request; 8use App\Models\Restdata; 9 10class RestappController extends Controller{ 11 12 public function index(){ 13 14 $items = Restdata::all(); 15 16 return $items->toArray(); 17 } 18 19 20 21 public function create() 22 { 23 // 24 } 25 26 27 public function store(Request $request) 28 { 29 // 30 } 31 32 33 public function show($id){ 34 35 $item = Restdata::find($id); 36 37 return $item->toArray(); 38 } 39 40 public function edit($id) 41 { 42 // 43 } 44 45 46 public function update(Request $request, $id) 47 { 48 // 49 } 50 51 52 public function destroy($id) 53 { 54 // 55 } 56} 57

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

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

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

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

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

m.ts10806

2021/02/08 21:54

>参考書自体にアドレスの間違いや、laravel8仕様の書き方ではないところがあり もう、その参考書捨てていいんじゃないかな。「参考」書としての役割を果たせない。 ドキュメント以外要らないと言っても良いです。
guest

回答2

0

ベストアンサー

diff

1- namespace App¥Models; 2+ namespace App\Models;

投稿2021/02/09 05:14

phper.k

総合スコア3923

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

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

退会済みユーザー

退会済みユーザー

2021/02/09 09:03

ありがとうございます。 Notepad++を使っているので表示は \で表示され、実行には影響ないと思っています。 投稿サイトは表示を訂正させていただきました。
退会済みユーザー

退会済みユーザー

2021/02/09 09:14

localhost:8000/restでは表示はされませんが、実行されているみたいです。 項目が表示されています。 JSON 生データ  ヘッダー となっていて、それぞれクリックすると、以下の通りです。 JSONクリックで、何も表示されない。 生データクリックで、 []  と表示されます。 ヘッダークリックで、   応答ヘッダー Cache-Control no-cache, private Connection close Content-Type application/json Date Tue, 09 Feb 2021 08:49:02 GMT, Tue, 09 Feb 2021 08:49:02 GMT Host localhost:8000 X-Powered-By PHP/7.4.14 要求ヘッダー Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language ja,en-US;q=0.7,en;q=0.3 Connection keep-alive Host localhost:8000 Upgrade-Insecure-Requests 1 User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0 と表示されます。 http://localhost:8000/personではPerson.Boardが正しく表示されます。 上の表示内容から解決につながることがわかるでしょうか。
phper.k

2021/02/09 11:00 編集

あなたの質問って、いつも重要な情報抜けていて、回答するものとしては非常に困る。 > Notepad++を使っているので表示は \で表示され、実行には影響ないと思っています どう思うかは問題解決に関係ない。 どう言う事実なのかを書いて欲しい。 「関係ない」が事実なら、 同じソース内で ``` namespace App¥Models; use Illuminate\Database\Eloquent\Model; ``` `¥` と `\` が混在するの?論理的に説明つかないじゃん、しかも`¥`全角ですよ? あと、最後のソースコード、マークダウン正常になっていないのもなぜ放置してる? 確認してないの? そういうところって、意外と、回答者チェックしてるし、質問文すら確認しないなら、自分の書いたソースコードもろくに確認しないんだろうなって思う。 まともな回答つかなくなるよ。
退会済みユーザー

退会済みユーザー

2021/02/09 11:09

はい、反省します。
phper.k

2021/02/09 11:45

指摘されたら、なおしましょうよ。
退会済みユーザー

退会済みユーザー

2021/02/10 18:07

よく点検してhttp://localhost:8000/restは実行されているみたいです。 項目:生データが [] ように、空になっているので、php artisan db:seedでエラーが出てデータが 正常に登録されていないみたいです。 composer dump-autoloadした後、php artisan db:seedを実行してもダメでした。 teratailにも同じ質問がありましたが、肝心のどうしてうまくいったのかの回答がありませんでした。 私もよくスペル間違いをするので再点検をしたのですが、スペルみすはないようです。 他にも詳しく説明してあるのがあり、その通りにやってもうまくいきませんでした。 エラーは以下の通りです。 C:\XAMPP\htdocs\laravelapp>composer dump-autoload Generating optimized autoload files Class App\Scopes\ScopePerson located in C:/XAMPP/htdocs/laravelapp/app\Http\Scopes\ScopePerson.php does not comply with psr-4 autoloading standard. Skipping. > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: laravel/sail Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. Generated optimized autoload files containing 4639 classes C:\XAMPP\htdocs\laravelapp>php artisan db:seed Illuminate\Contracts\Container\BindingResolutionException Target class [RestdataTableSeeder] does not exist. at C:\XAMPP\htdocs\laravelapp\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 1 C:\XAMPP\htdocs\laravelapp\vendor\laravel\framework\src\Illuminate\Container\Container.php:830 ReflectionException::("Class RestdataTableSeeder does not exist") 2 C:\XAMPP\htdocs\laravelapp\vendor\laravel\framework\src\Illuminate\Container\Container.php:830 ReflectionClass::__construct("RestdataTableSeeder") C:\XAMPP\htdocs\laravelapp> よろしくおねがいいたします。
phper.k

2021/02/11 03:21

エラーメッセージ読んでないの?
退会済みユーザー

退会済みユーザー

2021/02/11 05:05

はじめからやり直しました。プロジェクト project1を作り Route::resource('rest', 'RestappController',['only' => ['index','show']]);と修正し、 エラーメッセージを読んで、何回もphp artisan db:seed が通るまで試行錯誤して、できました。 どこが悪かったのかわかりません。お騒がせしました。復習の時またひっかかるかもしれませんが、 つぎにいきます。
guest

0

単なる記述ミス。
部分的なリソースルート
参考:コントローラ 8.x (再翻訳中)Laravel

投稿2021/02/09 00:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/02/09 05:06

ありがとうございます。一応Route::resource('rest', 'RestappController',['only' => ['index', 'show']]); で serverは起動できるようになりました。 掲載しているコードをチェックしてみたのですが、間違い箇所が特定できない状態です。 //2.C:\XAMPP\htdocs\laravelapp\app\Models\Restdata.phpの namespace App;はnamespace App\models;に変更しましたが、まだエラーが出ています。
退会済みユーザー

退会済みユーザー

2021/02/09 09:42

フレームワークLaravel 入門第2版 掌田津耶乃著で勉強しています。 6章まではつまづきながら、正常動作しています。7章では色々試みながら localhost:8000/rest の実行までは出来るようになりましたが、データベースの内容が表示されません。 内容の理解度は自信ありませんが、何とか解決したいと思っています。 よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問