Как добавить время между пользователем может создать отчет? - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно установить таймер примерно на 5 минут, чтобы пользователь мог сделать отчет, это возможно? Вот что я пробовал, но безуспешно.В моей таблице есть столбец created_at, и я хочу отобразить сообщение: Report created within the last 5 minutes, если отчет составлен за последние 5 минут.

Вот мой контроллер

public function careerReportCareerSolution(requ $request)
{
    $reportExists = \App\Reports::where('user_id', $request['user_id'])
        ->whereDate('created_at', '>', Carbon::now()->subMinutes(5)->toDateTimeString())
        ->exists();

    if($reportExists) {
        // report has been created within 5 minutes
        return Redirect::back()->withErrors(['error', 'Report created within the last 5 minutes']);
    }

    $report = \App\Reports::create([
        'user_id' => $request['user_id'],
        'username' => $request['username'],
        'user_id_posted' => $request['user_id_posted'],
        'username_posted' => $request['username_posted'],
        'career_solution_id' =>$request['career_solution_id'],
        'subject' =>$request['subject'],
        'why_reporting' =>$request['why_reporting'],
        'why_reporting_message' =>$request['why_reporting_message'],
        'additional_message' =>$request['additional_message'],
        'comment' =>$request['comment'],
        'comment_user' =>$request['comment_user'],
        'comment_id' =>$request['comment_id'],
    ]);
    $id = $request['career_solution_id']; // looks like this is the ID you ar looking for

    $career = CareerSolution::findOrfail($id);
    $career->active = $request['active'];
    $career->save();

    if ($report != "") {
        flash('Career solution report submited', 'success');
    } else {
        flash('Career solution report', 'warning');
    }

    return Redirect::back();
}

1 Ответ

1 голос
/ 26 сентября 2019

там, я думаю, вы должны использовать его так, как это может быть ошибкой в ​​красноречивом запросе.Попробуйте что-то вроде этого

$lastReport = \App\Reports::where('user_id', $request['user_id'])
                                ->orderBy('id', 'desc')
                                ->first();
$lastReportOn = time() - \Carbon\Carbon::parse($lastReport->created_at)->timestamp;

    if($lastReportOn < 300 ) {
        // report has been created within 5 minutes
        return Redirect::back()->withErrors(['error', 'Report created within the last 5 minutes']);
    }

Что-то вроде этого может помочь вам, если все еще не решена, пожалуйста, верните меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...