前提・実現したいこと
詳細を読むをクリックしたらUser-ID タイトル textが表示されるようにしたいです。
発生している問題・エラーメッセージ
試したこと
showコントローラーで$idと$reviewの値をddを使って確認しました。
$idでは投稿内容が表示されます。
$reviewではnullと表記されます。
$review = OnlineReviews::find($id);でインスタンス化してviewに表示されるようにしていますが反映されず・・・そこでweb.phpのshowを編集してみようと思います。
web.php
1 2Route::get('show/{id}',function($id){return 'online-reviews.text'.$id;} 3 OnlineReviewsController@show')->name('online_reviews.show'); 4});
このように編集しましたがシンタックスエラーが出てどのように編集すべきか止まっています。
###問題が考えられるコード
web.php Route::group(['prefix' => 'online_reviews','middleware' => 'auth'], function(){ Route::get('index','OnlineReviewsController@index')->name('online_reviews.index'); // 投稿一覧表 Route::get('create','OnlineReviewsController@create')->name('online_reviews.create');//投稿ページの表示 Route::post('store','OnlineReviewsController@store')->name('online_reviews.store');//投稿を保存するルーティング Route::get('show/{id}','OnlineReviewsController@show')->name('online_reviews.show');//投稿の詳細を確認するルーティング });
OnlineReviewsController.php
1 2public function show($id) 3 { 4 $review = OnlineReviews::find($id); 5 dd($id); 6 7 return view('online-reviews.show',compact('review')); 8 } 9
こちらの遷移するコードを追加しました
<div class="wrapper"> <header> @component('components.shop_header') @slot('header') @endslot @endcomponent </header> <div class="content"> <div class="list-box"> <div class="list-container"> <div class="hospital-name">A病院</div> <div class="address-name">大阪府大阪市</div> </div> @foreach ($reviews as $review) <div class="posted-table"> <div class="posted-header"> <div class="user-id">User-ID {{ $review->user_id }}</div> <div class="title">タイトル {{ $review->title}}</div> </div> </div> <div class="text-container">投稿内容 <div class="text">{!! nl2br(e(Str::limit($review->text, 100))) !!}</div> <a href="{{ route('online_reviews.show',[$review->text]) }}">投稿の詳細を読む</a> //こちらの投稿の詳細を読むをクリックするとonline-reviews/show.blade.phpに遷移します </div> <div class="date-container"> <span class="date"> 投稿日時 {{ $review->created_at }} </span> </div> @endforeach </div>
こちらの遷移するコードを追加しました
online-reviews/show.blade.php <div class="wrapper"> <header> @component('components.shop_header') @slot('header') @endslot @endcomponent </header> <div class="content"> <div class="list-box"> <div class="list-container"> <div class="hospital-name">A病院</div> <div class="address-name">大阪府大阪市</div> </div> @foreach ((array) $review as $review)) <div class="posted-table"> <div class="posted-header"> <div class="user-id">User-ID {{ $review->user_id }}</div> <div class="title">タイトル {{ $review->title}}</div> </div> </div> <div class="text-container">投稿内容 <div class="text">{{$review->text}}</div> </div> <div class="date-container"> <span class="date"> 投稿日時 {{ $review->created_at }} </span> </div> @endforeach </div>
補足情報(FW/ツールのバージョンなど)
laravel 6.20