Как проверить, если пользователь уже отправил отзыв перед сохранением в базе данных - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу, чтобы мой контроллер проверил таблицу avis внутри базы данных, если user_id уже существует, перед сохранением комментариев пользователя в таблице avis, чтобы один и тот же пользователь не мог отправить несколько отзывов в чей-то профиль. Есть ли способ сделать это с помощью laravel?

У меня есть таблица avis, в которой хранятся отзывы с id, profile_id, user_id, comment. (User_id получает идентификатор того, кто отправляет форму, а profile_id получает идентификатор пользователя, который получает отзыв)

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

public function store(AvisCreateRequest $request)
{
    //dd($request->all());
    //$region = $this->regionRepository->store($request->all());



    $avis = new Avis;

    $id = Auth::user()->id;

    /** $duplicates = Avis::search(function ($avis, $rowId) use ($request) {
        return $avis->user_id === $id;
    });

   if ($duplicates->isNotEmpty()) {
        return back()->with('success_message', 'You already submitted an avis');
    } **/

    $avis->comment = $request->comment;
    $avis->profile_id = $request->profile_id;

    $avis->user_id = $id;



    //dd($avis);

    $avis->save();

     return back()->with('success_message', 'Votre Avis a ete envoyez avec succes!');
}

Вот моя форма

div id="avisForm">  

  <p class="feedback_message">We are here to make sure you are sastified and your transactions are safe. We do appreciate and will respond quickly to any feedback from you.</p>

    {!! Form::open(['route' => 'avis.store']) !!}

     <input type="hidden" name="profile_id" value="{{ $profiledetail->id }}">
     {!! Form::textarea('comment', null, ['placeholder' => 'Message', 'required' => 'required']) !!}
     {!! Form::submit('Envoyez', ['class' => 'formBtn','style' => 'margin-top:10px']) !!}

   {!! Form::close() !!}
</div>

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете попробовать что-то вроде этого:

$id = \Auth::user()->id;
$profile_id = $request->profile_id;

if (Avis::where('user_id', $id)->where('profile_id', $profile_id)->exists()) {
   return back()->with('success_message', 'You already submitted...');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...