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

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

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

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

PHP

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

Q&A

解決済

1回答

9226閲覧

laravelでのミドルウェアでのTarget class [App\Http\Middleware\GreetingMiddleware] does not exist.

hwgl

総合スコア5

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/03/09 06:04

laravelでのミドルウェアですが、現在書籍で勉強中なのですがエラーが出て理解が出来ていないのでご教授いただけないでしょうか?

resources\views\hello\index.blade.php

php

1@section('content') 2 <p>ここが本文のコンテンツです。</p> 3 <table> 4 @foreach($data as $item) 5 <tr><th>{{$item['name']}}</th><td>{{$item['mail']}}</td></tr> 6 @endforeach 7 </table> 8@endsection

app\Http\Middleware\HelloMiddleware.php

php

1<?php 2namespace App\Http\Middleware; 3use Closure; 4class HelloMiddleware 5{ 6 public function handle($request, Closure $next) 7 { 8 $data = [ 9 ['name'=>'taro', 'mail'=>'taro@yamada'], 10 ['name'=>'hanako', 'mail'=>'hanako@flower'], 11 ['name'=>'sachiko', 'mail'=>'sachico@happy'], 12 ]; 13 $request->merge(['data'=>$data]); 14 return $next($request); 15 } 16} 17

routes\web.php

php

1<?php 2Route::get('/', function () { 3 return view('welcome'); 4}); 5// use App\Http\Middleware\HelloMiddleware; を追記 6Route::get('hello', 'HelloController@index')->middleware(HelloMiddleware::class); 7Route::post('hello','HelloController@post');

app\Http\Controllers\HelloController.php

php

1<?php 2namespace App\Http\Controllers; 3use Illuminate\Http\Request; 4use Illuminate\Http\Response; 5class HelloController extends Controller 6{ 7public function index(Request $request) 8{ 9 return view('hello.index', ['data'=>$request->data]); 10} 11}

app\Http\Kernel.php

php

1 protected $routeMiddleware = [ 2 'auth' => \App\Http\Middleware\Authenticate::class, 3 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 4 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 5 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 6 'can' => \Illuminate\Auth\Middleware\Authorize::class, 7 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 8 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 9 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 10 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 11 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 12 'hello' => \App\Http\Middleware\HelloMiddleware::class, 13 ];

変更したところをすべて記載させていただきました。
初心者で基本的な事だと思いますが、何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Target class [App\Http\Middleware\GreetingMiddleware] does not exist.

というエラーが出ているということは、どこかから、GreetingMiddleware を呼び出そうとしているけど、「存在していませんよ」と言われています。

提示されたコードの中では、HelloMiddleware について書かれていますが、GreetingMiddleware に記述は一切ありませんから、提示された情報だけでは解決できません。

ここからは類推ですが、元々、GreetingMiddlewareで作成しようとしていて、のちにHelloMiddlewareに変更した、というような経緯が質問文中に書かれていたなら、キャッシュ的な問題かもと回答者は考えるかもしれません。

キャッシュだとすれば、php artisan optimize とか artizan cache:clear  とかで解決するかもしれません。

投稿2020/03/09 13:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hwgl

2020/03/09 17:26

ご回答ありがとうございました。 キャッシュ的な問題でキャッシュをクリアしたところ改善されました。 わかりやすくご説明いただきまして、すごくためになりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問