Ограничить комментарий в посте Laravel - PullRequest
0 голосов
/ 20 сентября 2018

Так что это проблема, у меня есть приложение с постом и комментарием.Но я хочу ограничить количество комментариев для каждого пользователя, поэтому, если есть 1 сообщение, только 1 комментарий для каждого пользователя.Возможно ли это?

Вот моя store функция в CommentController:

public function store(Request $request, $post)
{
    $this->validate($request, array(
        'title' => 'required|max:200',
        'desc' => 'required|max:800'
    ));
    $comments = new Comment();
    $comments->id_user = Auth::id();
    $comments->id_post = $post;
    $comments->title = $request->A;
    $comments->desc = $request->B;
    $comments->save();
    return redirect()->route('controller.index');
}

Какой запрос я могу добавить в эту store функцию, чтобы ограничить пользователя комментарием только один разв 1 пост.Спасибо, ребята, надеюсь, вы можете помочь мне.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вы должны попробовать это

Проверить комментарий, добавленный к этому сообщению этим пользователем

$result = DB::table('comments')->where('id_user', '=', Auth::id())->where('id_post', '=', $incase->id)->get();

if(count($result) < 1){
    $comments = new Comment();
    $comments->id_user = Auth::id();
    $incase = Incase::find($id);
    $comments->id_post = $incase->id;
    $comments->title = $request->A;
    $comments->desc = $request->B;
    $comments->save();
    return redirect()->route('controller.index');
}
else{
    return redirect()->route('controller.index')->with('warning','Already Commented');
}

ИЛИ

Скрыть поле комментария для этого пользователя, если сохранен один комментарий

0 голосов
/ 20 сентября 2018

Это очень просто, вам нужно проверить, существует ли уже такой комментарий для пользователя и сообщения:

if (! Comment::where('id_user', $userId)->where('id_post', $postId)->exists()) {
   //save the comment
} else {
   // do not save the comment
}

В вашем случае $userId может быть Auth::user()->id, а $ postId равен $post->id.

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