Laravel exists()函数在存在时保持返回false

时间:2017-11-28 08:07:27

标签: php laravel

我不确定我做错了什么,但每次点击“赞”按钮都会显示错误

我正在使用laravel 5.5

当我点击帖子ID时,无论何时我点击它,它都清楚地起作用。

<Double-1>

我的控制台日志显示没有错误,类似按钮工作,但isLikedByMe函数保持渲染

  

在网络日志中,我不知道为什么。它可以查看数据库

enter image description here

PostController.php

http://127.0.0.1:8000/post/144/islikedbyme

路线

public function isLikedByMe($id)
{
  $post = Post::find($id);

    if (Like::whereUserId(auth()->user()->id)->wherePostId($post)->exists()){
        return 'true';
    }
    return 'false';
}

Main.js

Route::get('post/{id}/islikedbyme', 'PostController@isLikedByMe');
Route::post('post/like/{post}', 'PostController@like');

2 个答案:

答案 0 :(得分:1)

因为它被移除了,如果你想要删除它们就像这样:

public function isLikedByMe($id)
{
  $post = Post::find($id);

    if (Like::withTrashed()
             ->whereUserId(auth()->user()->id)
             ->wherePostId($post->id)->exists()){
        return 'true';
    }
    return 'false';
}

如果你不想发布帖子,你甚至可以做得更好:

public function isLikedByMe($id)
{

    if (Like::withTrashed()
             ->whereUserId(auth()->user()->id)
             ->wherePostId($id)->exists()){
        return 'true';
    }
    return 'false';
}

答案 1 :(得分:0)

尝试以下内容:

public function isLikedByMe($id) {
    $post = Post::find($id);
    $is_like = Like::where(['user_id' => auth()->user()->id, 'post_id' => $post->post_id])->exists();
    if ($is_like) {
        return 'true';
    }
    return 'false';
}