tissue/app/Http/Controllers/EjaculationController.php
shibafu 94918fc337 チェックイン画面のレイアウト変更
別にレイアウト変わってないので焼き直しが正しい
2017-11-05 19:14:54 +09:00

67 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\User;
use Carbon\Carbon;
use Validator;
use App\Ejaculation;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class EjaculationController extends Controller
{
public function create()
{
return view('ejaculation.checkin');
}
public function store(Request $request)
{
Validator::make($request->all(), [
'date' => 'required|date_format:Y/m/d',
'time' => 'required|date_format:H:i',
'note' => 'nullable|string|max:500',
])->after(function ($validator) use ($request) {
// 日時の重複チェック
if (!$validator->errors()->hasAny(['date', 'time'])) {
$dt = $request->input('date') . ' ' . $request->input('time');
if (Ejaculation::where(['user_id' => Auth::id(), 'ejaculated_date' => $dt])->count()) {
$validator->errors()->add('datetime', '既にこの日時にチェックインしているため、登録できません。');
}
}
})->validate();
Ejaculation::create([
'user_id' => Auth::id(),
'ejaculated_date' => Carbon::createFromFormat('Y/m/d H:i', $request->input('date') . ' ' . $request->input('time')),
'note' => $request->input('note') ?? '',
'is_private' => $request->has('is_private') ?? false
]);
return redirect()->route('home')->with('status', 'チェックインしました!');
}
public function show()
{
// TODO: not implemented
}
public function edit()
{
// TODO: not implemented
}
public function update()
{
// TODO: not implemented
}
public function destroy($id)
{
$ejaculation = Ejaculation::findOrFail($id);
$user = User::findOrFail($ejaculation->user_id);
$ejaculation->delete();
return redirect()->route('user.profile', ['name' => $user->name])->with('status', '削除しました。');
}
}