Проверьте, является ли "комментарий" первым, затем не удаляйте его - PullRequest
0 голосов
/ 12 июля 2020

Я совершенно не знаком с Laravel. Так что у меня небольшой вопрос. У меня есть приложение, в котором вы можете создать билет. Тело заявки сохраняется в комментариях к таблице. Все дополнительные комментарии также сохраняются в этой таблице. Итак, когда пользователь попытался удалить комментарий, я проверю, является ли это первым комментарием (то есть тело заявки), и не разрешаю это, но он не работает. Комментарий все еще можно удалить:

public function deleteComment($id) {
    if(Comment::where('id', $id)->exists()) {

        $ticket_id = Comment::where('id', $id)->pluck('ticket_id');
        $first_id = Comment::where('ticket_id', $ticket_id)->get('id')->first();
        if($first_id == $id){
            return response()->json([
                "message" => "Cloud not delete comment, because it is the first comment"
            ], 405);
        }
        else{
            $comment = Comment::find($id);
            $comment->delete();

            return response()->json([
                "message" => "Comment deleted"
            ], 202);
        }
    } else {
        return response()->json([
            "message" => "Comment not found"
        ], 404);
    }
}

Ребята, вы можете мне помочь?

Ответы [ 2 ]

2 голосов
/ 12 июля 2020
$comment = Comment::where('id', $id)->get();
if(count($comment) > 1){
    $comment = Comment::find($id);
    $comment->delete();
}else...

Проверить наличие различий в сборе, не тестировалось

$comment = Comment::where('id', $id)->get();
$commentFirst = Comment::where('id', $id)->first();
$diff = $comment->diff($commentFirst);
if(count($diff->all()) > 0){
    $comment = Comment::find($id);
    $comment->delete();
}else...
1 голос
/ 12 июля 2020

Попробуйте это

public function deleteComment($id) {
    if(Comment::where('id', $id)->exists()) {

        $ticket_id = Comment::where('id', $id)->first();
        $first_id = Comment::where('ticket_id', $ticket_id->ticket_id)->first();
        if($first_id->id == $id){
            return response()->json([
                "message" => "Cloud not delete comment, because it is the first comment"
            ], 405);
        }
        else{
            $comment = Comment::find($id);
            $comment->delete();

            return response()->json([
                "message" => "Comment deleted"
            ], 202);
        }
    } else {
        return response()->json([
            "message" => "Comment not found"
        ], 404);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...