お世話になっております。
当方Laravel5.5にてWebSiteを構築しております、
環境はmac OS Mojave10.14.2
ブラウザはGoogle Chrome バージョン: 71.0.3578.98になります。
やりたいこと
下記2点目を実現したいです。
(1点目は既に実現済)
- 一般的な掲示板のサイトと同じく、データベースからデータ(文章)を取得し、
一覧表示(表形式)させる
- リスト一覧表示の各レコードには「詳細を表示」リンクがあり、クリックすると、
データの詳細(詳しい項目など)が表示される
現状
下記を参照し、routeヘルパでパラメータとして配列(項目のデータ)を渡そうと
しましたが、なぜかrequestには項目のidのみが結果として出力されます。
https://readouble.com/laravel/5.5/ja/helpers.html
(routeのヘルパでパラメータとして渡すことができるものは、
配列ではなく1変数のみなのでしょうか?)
コントローラー
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Http\Controllers\Controller; 7use App\Models\CaseModel; 8 9class ShowcaseController extends Controller 10{ 11 public function show_case_searched(Request $request) 12 { 13 $keyword = $request->input('keyword'); 14 15 if(!empty($keyword)){ 16 $cases = CaseModel::Where('case_a', 'like', '%'.$keyword.'%') 17 ->paginate(10); 18 }else{ 19 $cases = CaseModel::orderBy('created_at', 'desc')->paginate(10); 20 } 21 return view('case.show_case',compact('cases','keyword')); 22 } 23 24 public function show_case_detail(Request $request){ 25 $casedata = $request; 26//ここで、dd($casedata);としたときに、 27//+request: ParameterBag {#50 28//▼#parameters: array:1 [▼"case" => "4"]} 29//となってしまいます。 30//欲しいデータは、case_aやcase_bなどの、一覧表示時に取得したcaseテーブル内のデータです 31 32 return view('case.show_case_detail',compact('casedata')); 33 } 34 35} 36
ルーティング
php
1// show case 2Route::get('/show_case', function () {return redirect('/');})->name('show_case')->middleware('auth'); 3Route::post('/show_case', 'ShowcaseController@show_case_searched')->name('show_case')->middleware('auth'); 4Route::get('/show_case_detail', 'ShowcaseController@show_case_detail')->name('show_case_detail')->middleware('auth');
一覧表示画面のview
php
1<?php $num = 1 ?> 2@foreach($cases as $case) 3 <tr> 4 <td style="width:20px;">{{$num}}</td> 5 <td style="width:180px;">{{ $case->case_a }}</td> 6 <td style="width:120px;">{{ $case->case_b }}</td> 7 <td style="width:80px; text-align:center;"><a class="card-link" href="{{ route('show_case_detail', ['case'=> $case]) }}">詳細を表示</a></td> 8 </tr> 9<?php $num ++ ?> 10@endforeach 11
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー