Laravel - 即使不存在,也始终从数据库模型返回结果

时间:2016-03-24 13:52:01

标签: php laravel-5 laravel-5.1

我正在尝试确定两个数据库之间的关系,以确定用户是否喜欢"喜欢"一个帖子。

这需要以下载体:

首先,用户加载帖子集合,或者#34; wall"

这是路线:

Route::get('/wall',[
    'uses' => 'punscontroller@wall',
    'as'   => 'puns.wall'
]);

相关管制员:

 public function wall()
           {
 if (Auth::check() && Auth::user()->AccountSetup != "FALSE")
{
$data = array();
$wall = Wall::orderBy('id', 'desc')->take(20)->get();
foreach ($wall as $snail){
    $type = $snail["post_type"];
    $id = json_decode($snail["assetID"])->id;
    if(count(Like::where('assetType', $type)->where('user_id', Auth::user()->id)->where('assetId', $id)) > 0){
        //you already liked this assetID
        //push into data
        $datatherobot = array(
    'wall'  => $snail,
    'liked?' => "y"
);
    }
    else{
    $datatherobot = array(
    'wall'  => $snail,
    'liked?' => "n"

);  
    }
array_push($data,$datatherobot);    
}
return view('wall')->with('data', $data);   ;
}
else{
echo "Insufficient Privileges! Please visit the homepage and login!";
}
       }

视图看起来像这样:

@foreach ($data as $snail)
<div class="wallfunctions">
          @if ($snail["liked?"] == "y") <i class="fa fa-thumbs-up liked" style="font-size: 100%;"></i> @else<i class="fa fa-thumbs-up" style=""></i>@endif<i class="fa fa-comments" style="color:black;padding:0 5%"></i>
          </div>
@endforeach

我的问题是墙上的每个帖子,当我只登录用户喜欢第一个帖子时,我会收到每一个帖子(我只喜欢墙上的一个帖子,而不是所有帖子)。 / p>

我不明白为什么会这样,因为如果我在查看我的数据表时遵循我的控制器逻辑,我不知道计数总是大于0,无论它看起来是哪个墙贴在

我的代码中有错误吗?

自己查看两个有问题的表,看看登录用户(user_id == 2)应该只有一个喜欢的帖子。

Wall Data Table

Likes Data Table

0 个答案:

没有答案