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

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

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

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

並列処理

複数の計算が同時に実行される手法

Q&A

解決済

1回答

6358閲覧

laravelのsubmitを複数に分岐する方法

yamadaippei

総合スコア12

Laravel

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

並列処理

複数の計算が同時に実行される手法

0グッド

0クリップ

投稿2020/08/20 02:11

編集2020/08/20 04:55

質問失礼します。
実現したいこと。
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を返す処理にしています。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/20 02:43

コード省略しすぎです。PHPとして動かないですしviewもないので再現確認も困難です。 エラー自体は珍しいものではないですし、デバッグでおおよそ見えそうに思うのですけど
yamadaippei

2020/08/20 03:50

返信ありがとうございます。 今一度修正してコード載せなおします。
yamadaippei

2020/08/20 04:52

修正しました。 お時間ありましたら、確認お願いいたします。
m.ts10806

2020/08/20 10:04

確認しました。 が、コントローラに色々書かれてますがこれは本気で書いてるのかデバッグのつもりで書いているのかは他者には分からないので、次からはそれが分かるように気をつけてください。
guest

回答1

0

自己解決

解決しました。
メソッドを返すreturnが抜けていました。

投稿2020/08/20 06:28

yamadaippei

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問