问题描述
我为 Laravel 8 约会应用程序的喜欢和收藏功能编码。成员可以看到匹配的合作伙伴,我从下面的查询中过滤了它们。
$match = DB::table('matchcriterias')
->where('user_id','!=',Auth::user()->id)
->whereBetween(DB::raw('TIMESTAMPDIFF(YEAR,matchcriterias.dob,CURDATE())'),array($partner_match->age_from,$partner_match->age_to))
->whereBetween(DB::raw('matchcriterias.height'),array($partner_match->height_from,$partner_match->height_to))
->where('gender',function($query){
$query->select('gender')
->from('profiles')
->where('user_id',Auth::user()->id);
})
->where('marital_status',$partner_match->maritals)
->get();
然后在 foreach 之后 $match 查询并将特定值存储到 $data 数组中。
$like = [];
$not_like = [];
foreach($match as $match_record){
if(Like::where('user_id',Auth::user()->id)->exists()){
$liked = Like::where('user_id',Auth::user()->id)->get();
foreach($liked as $record){
//like_to is the ID of the user that the current user liked to ( filled heart)
if($match_record->user_id == $record->like_to){
$like[] = $match_record->user_id;
}
//add other matching users ID into $not_like array ( unfilled heart )
if($match_record->user_id != $record->like_to){
$not_like[] = $match_record->user_id;
}
}
}
$data[] = [
'name' => User::where('id',$match_record->user_id)->value('name'),'age' => floor((time() - strtotime($match_record->dob)) / 31556926),'like' => $like,'not_like' => $not_like
];
}
return view('user.partnermatching',['data' => $data]);
在blade模板中,foreach“data”数组如下
@foreach ($data as $field)
<span class="label label-primary">{{$field['name']}} </span>
<span class="label label-success">Age: {{$field['age']}}</span>
//display the filled heart
@foreach ($field['like'] as $val)
@if ($val == $field['user_id'])
<i class="fas fa-heart" style='font-size:30px; color:palevioletred' id="like" ></i>
@endif
@endforeach
//display the unfilled heart
@foreach ($field['not_like'] as $val)
@if ($val == $field['user_id'])
<i class="far fa-heart" style='font-size:30px; color:palevioletred' id="like"
onclick="onLike({{$field['user_id']}})"></i>
@endif
@endforeach
@endforeach
问题:
当我喜欢一个用户(点击心形图标)时,其他匹配的用户也会得到同样的未填充的心。如果您需要进一步说明,请在下方评论。我尽力解释了。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)