質問失礼します。
実現したいこと。
laravelにてformのsubmitボタンを複数作成し、押されたボタンによって処理する内容を変えたい。
エラー内容(変化がありました)
画面がにviewが返らなくなりました。
試したこと
$requestの中身は存在するかissetで確認
echo""で文字列などの表示はできるか
アドバイスお願いします。
ルーティング
Route::get('/', 'work@showPage'); Route::post('/', 'work@judge');
controller
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use App\date_table; use Request as PostRequest; use Illuminate\Http\Request; class work extends Controller { public function judge(Request $request){ if (PostRequest::get('doSearch')){ if(! is_null($request)) { $this -> doSearch($request); } }elseif (PostRequest::get('doUpdate')){ echo "hello world"; } } public function showPage() { return view('index'); } public function doSearch($request) { print($request); echo "<br><br>"; // var_dump($request); $search_year = $request->get('search_year'); $search_month = $request->get('search_month'); $search_no = $request->get('search_no'); $query = date_table::query(); if (empty($search_year) && empty($search_month) && empty($search_month)) { $query->where('Year', 'LIKE', "%{$search_year}%"); $query->where('Month', 'LIKE', "%{$search_month}%"); $query->where('No', 'LIKE', "%{$search_no}%"); } if (!empty($search_no)) { $query->where('No', 'LIKE', "%{$search_no}%"); } if (!empty($search_year)) { $query->where('Year', 'LIKE', "%{$search_year}%"); } if (!empty($search_month)) { $query->where('Month', 'LIKE', "${search_month}"); } $data = $query->get(); return view('index', compact('data', 'search_year', 'search_month', 'search_no')); } public function doUpdate(Request $request) { // $update_startTime = $request->input('update_startTime'); // $update_endTime = $request->input('update_endTime'); // update(['StartTime' => $request->update_startTime]); // update(['EndTime' => $request->update_endTime]); return view('test'); } }
view
<!DOCTYPE HTML> <html lang="ja" style="height:100%;"> <head> <title>勤怠管理</title> <link href="{{ asset('css/app.css') }}" rel="stylesheet"> </head> <body> <!-- ボタンを押した時、POST形式でactionに指定したURIに遷移する --> <form method="post" action="/"> {{ csrf_field() }} <!-- 一覧を取得する際の検索条件に使う --> 検索条件: <input type="text" name='search_no' value="{{$search_no ?? ''}}"> USER <input type="text" name='search_year' value="{{$search_year ?? ''}}"> 年 <input type="text" name='search_month' value="{{$search_month ?? ''}}"> 月 <!-- 送信ボタン --> <input type="submit" name='doSearch' value='検索'> <br> <input type="submit" name='doUpdate' value='更新'><br> @if($data ?? '' === array()) <TABLE BORDER=1> <TR> <TH WIDTH=20>No</TH> <TH WIDTH=100>年</TH> <TH WIDTH=50>月</TH> <TH WIDTH=50>日</TH> <TH WIDTH=100>開始時間</TH> <TH WIDTH=100>終了時間</TH> <TH WIDTH=100>勤務時間</TH></TH> </TR> <TR> @foreach($data as $d) <TH>{{$d->No}}</TH> <TH>{{$d->Year}}</TH> <TH>{{$d->Month}}</TH> <TH>{{$d->Day}}</TH> <TH><input type="text" name="update_startTime" value="{{$d->StartTime}}" class="startClass"></TH> <TH><input type="text" name="update_endTime" value="{{$d->EndTime}}" class="endClass"></TH> <TH><?php $startTime = explode(":", $d->StartTime); $startTime_hour = (int)$startTime[0]; $startTime_minute = (int)$startTime[1]; $endTime = explode(":", $d->EndTime); $endTime_hour = (int)$endTime[0]; $endTime_minute = (int)$endTime[1]; $int_year = (int)$d->Year; $int_month = (int)$d->Month; $int_day = (int)$d->Day; $zero = 00; $timestamp1 = strtotime( "$int_year/$int_month/$int_day $startTime_hour:$startTime_minute:00" ); $timestamp2 = strtotime( "$int_year/$int_month/$int_day $endTime_hour:$endTime_minute:00" ); $day_hour = (int)(($timestamp2 - $timestamp1) / (60*60)); $day_minute = (int)(($timestamp2 - $timestamp1) % (60*60) / 60); if ($day_minute === null) { $day_minute = 0; } if (is_int($day_hour)) { echo "{$day_hour} :"; } if (strlen($day_minute)===1){ echo "0{$day_minute}"; } else { echo "{$day_minute}"; } ?> </TH> </TR> @endforeach </TABLE> @else <p>検索条件を入力後、表示されます</p> @endif <br> <a href="{{ url('/new')}}">新規登録</a> </form> </body> </html>
updateメソッドの中ではviewの表示ができるか確認のため、viewを返す処理にしています。
回答1件
あなたの回答
tips
プレビュー