diff --git a/app/Http/Controllers/EjaculationController.php b/app/Http/Controllers/EjaculationController.php index 13a6d37..1509443 100644 --- a/app/Http/Controllers/EjaculationController.php +++ b/app/Http/Controllers/EjaculationController.php @@ -12,9 +12,18 @@ use Illuminate\Support\Facades\Auth; class EjaculationController extends Controller { - public function create() + public function create(Request $request) { - return view('ejaculation.checkin'); + $defaults = [ + 'date' => $request->input('date', date('Y/m/d')), + 'time' => $request->input('time', date('H:i')), + 'link' => $request->input('link', ''), + 'tags' => $request->input('tags', ''), + 'note' => $request->input('note', ''), + 'is_private' => $request->input('is_private', 0) == 1 + ]; + + return view('ejaculation.checkin')->with('defaults', $defaults); } public function store(Request $request) @@ -24,7 +33,7 @@ class EjaculationController extends Controller $inputs['note'] = str_replace(["\r\n", "\r"], "\n", $inputs['note']); } - Validator::make($inputs, [ + $validator = Validator::make($inputs, [ 'date' => 'required|date_format:Y/m/d', 'time' => 'required|date_format:H:i', 'note' => 'nullable|string|max:500', @@ -38,7 +47,11 @@ class EjaculationController extends Controller $validator->errors()->add('datetime', '既にこの日時にチェックインしているため、登録できません。'); } } - })->validate(); + }); + + if ($validator->fails()) { + return redirect()->route('checkin')->withErrors($validator)->withInput(); + } $ejaculation = Ejaculation::create([ 'user_id' => Auth::id(), @@ -98,7 +111,7 @@ class EjaculationController extends Controller $inputs['note'] = str_replace(["\r\n", "\r"], "\n", $inputs['note']); } - Validator::make($inputs, [ + $validator = Validator::make($inputs, [ 'date' => 'required|date_format:Y/m/d', 'time' => 'required|date_format:H:i', 'note' => 'nullable|string|max:500', @@ -112,7 +125,11 @@ class EjaculationController extends Controller $validator->errors()->add('datetime', '既にこの日時にチェックインしているため、登録できません。'); } } - })->validate(); + }); + + if ($validator->fails()) { + return redirect()->route('checkin')->withErrors($validator)->withInput(); + } $ejaculation->fill([ 'ejaculated_date' => Carbon::createFromFormat('Y/m/d H:i', $inputs['date'] . ' ' . $inputs['time']), diff --git a/resources/views/ejaculation/checkin.blade.php b/resources/views/ejaculation/checkin.blade.php index 81fe4e2..b8bde4d 100644 --- a/resources/views/ejaculation/checkin.blade.php +++ b/resources/views/ejaculation/checkin.blade.php @@ -13,7 +13,7 @@
+ pattern="^20[0-9]{2}/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])$" value="{{ old('date') ?? $defaults['date'] }}" required> @if ($errors->has('date'))
{{ $errors->first('date') }}
@@ -22,7 +22,7 @@
+ pattern="^([01][0-9]|2[0-3]):[0-5][0-9]$" value="{{ old('time') ?? $defaults['time'] }}" required> @if ($errors->has('time'))
{{ $errors->first('time') }}
@@ -36,7 +36,7 @@
- +
    @@ -54,7 +54,7 @@
    - + オカズのURLを貼り付けて登録することができます。 @@ -66,7 +66,7 @@
    - + 最大 500 文字 @@ -80,7 +80,7 @@