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

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

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

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

解決済

laravel ルーティングがうまくいかず、blade.phpが読み込まれません。

tanakA
tanakA

総合スコア2

Laravel

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

1回答

0リアクション

0クリップ

259閲覧

投稿2022/09/09 03:10

編集2022/09/09 04:39

前提

laravel学習2か月目です。
AControllerのindex.blade.phpの値を
BContorolleのindex.blade.phpに渡し、
ここからshow.blade.phpにルーティングするところで躓き先に進めません。
(ルーティングに問題があると思っておりますが、それすら良く分かりません。)
BController内にcreate,edit,delete,updateを展開していきたいと思っております。

お手数をお掛けし、申し訳ございませんがどなたかご指導いただけませんか?
何卒よろしくお願い致します。

開発環境
Windows10
Xampp3.3.0
laravel 8.83.23

実現したいこと

AControllerの社員が、自分の名前をクリックし、BControllerに移行します。
BControllerのindex上で、日付をクリックすると、BControllerのshowに移動しそこに日報を書き、責任者がコメントを入れるようなアプリケーションを開発したいと考えております。

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

View [index] not found. index was not found. Are you sure the view exists and is a .blade.php file? throw new InvalidArgumentException("View [{$name}] not found.");

該当のソースコード

------web.php------

use App\Http\Controllers\MemberController; use App\Http\Controllers\PostController; Route::get('/', [MemberController::class,'index']) ->name('members.index'); Route::get('/posts/{member}', [PostController::class,'index']) ->name('posts.index'); Route::get('/posts/{id}', [PostController::class,'show']) ->name('posts.show');

------MembersController------

class MemberController extends Controller { // index public function index() { $members = [ 'aaa', 'bbb', 'ccc', ]; return view('members.index') ->with(['members' => $members]); } }

------PostController------

use App\Models\Member; use App\Models\Post; class PostController extends Controller { // index public function index () { $members = Member::all(); $member[]= $members; $posts = Post::latest()->get(); return view('index') ->with([ 'posts' => $posts, 'member' => $member, ]); } // show public function show ($id) { $post = Post::findOrFail($id); return view('posts.show') ->with(['post' => $post]); } }

------views/components/layout.blade.php------

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="{{ url ('css/style.css') }}"> <title>{{ $title }} </title> </head> <body> <div class="container"> {{ $slot }} </div> </body> </html>

------views/members/index.blade.php------

<x-layout> <x-slot name="title"> <title>業務報告【担当】</title> </x-slot> <h1>業務報告【担当】</h1> <ul> @forelse($members as $index => $member) <li> &laquo; <a href="{{ route('posts.index', $member) }}"> {{ $member }} </a> </li> @empty <li>登録者なし</li> @endforelse </ul> </x-layout>

------views/posts/index.blade.php------

<x-layout> <x-slot name="title"> 業務報告 </x-slot> <!-- member -----------------------------------------------------> <div class="back-link"> &laquo; <a href="{{ route('members.index') }}">【 戻る 】</a> </div> <h1>{{ $member }} </h1> <!-- member-----------------------------------------------------> <ul> @forelse($posts as $post) <li> <a href="{{ route('posts.show', $post->id) }}"> {{ $post->title }} </a> </li> @empty <li>記録なし</li> @endforelse </ul> </x-layout>

------views/posts/show.blade.php------

<x-layout> <x-slot name="title"> 業務報告 </x-slot> <!-- member -----------------------------------------------------> <div class="back-link"> &laquo; <a href="{{ route('members.index') }}">【 戻る 】</a> </div> <h1>{{ $member }} </h1> <!-- member-----------------------------------------------------> <ul> @forelse($posts as $post) <li> <a href="{{ route('posts.show', $post->id) }}"> {{ $post->title }} </a> </li> @empty <li>記録なし</li> @endforelse </ul> </x-layout>

------MemberModel------

protected $fillable = [ 'title', ];

------PostModel------

protected $fillable = [ 'title', 'customer_name', 'earnings', 'shipping_amount', 'contents', 'interim_report', 'consults', ];

試したこと

homeであるMembersControllerのindex.blade.phpから、社員名をクリックしPostControllerに行く間でエラーが発生します。PostControllerのindexが認識されないためだと思い、

Route::get('/posts/{member}', [PostController::class,'index'])
->name('posts.index');

この部分を Route::get('/posts', としたり '/memers/{member}と変えたり、いろいろ試しましたが改善できませんでした。

どなたかご教示頂けますと助かります。
何卒よろしくお願い致します。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2022/09/09 03:57

コードブロックはファイル毎に分けてください ファイル名 ```言語 コード ``` ファイル名 ```言語 コード ```
tanakA

2022/09/09 04:05

m.ts10806様 お世話になります。 申し訳ございません。今後はファイル毎に分けて記載いたします。 ご指摘ありがとうございました。勉強になりました。
m.ts10806

2022/09/09 04:08

質問は編集できますので、後から同じような問題を抱えた人が参考にすることも含めると 解決後でも修正しておいた方が良いです。 コードは質問内で最も見られる文章ですから、分かりやすいに越したことはありません。
tanakA

2022/09/09 04:34

m.ts10806様 ご指摘いただき本当にありがとうございました! おかげさまで、次回は投稿一回目から分かりやすく説明ができるようになりました。
m.ts10806

2022/09/09 04:35 編集

修正確認しました。 コードブロック内はあくまで「そのファイルのコードのみ」にしてください。 ブロックにはコピペ機能があり、そのままコピペするとPHPの方はエラーになります。 どこからどこまでが実際のコードかを知っているのは質問者だけなので、 手元で再現確認の際に回答する人がわざわざ手を入れると、質問者のコードを同じにならない可能性があり、 場合により再現せず、回答得られないことがあるからです。
tanakA

2022/09/09 04:35

はい。かしこまりました。 直ぐに修正し直します。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel

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