我正在尝试确定两个数据库之间的关系,以确定用户是否喜欢"喜欢"一个帖子。
这需要以下载体:
首先,用户加载帖子集合,或者#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
)应该只有一个喜欢的帖子。