前提
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> « <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"> « <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"> « <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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー