【发布时间】:2019-01-04 09:01:42
【问题描述】:
我在数据库中创建了一个朋友表,其中包括 requesteeid(请求成为朋友的用户的 id)、inboundid(朋友请求要去的用户的 id)和已批准的列当设置 false = 待处理并且设置 true = 接受时,目前似乎只有一个用户,当我回显 $rowsget 时,当我尝试和尽管我只得到一个,但循环遍历,即已将该用户(inboundee)添加为朋友的最新用户。我已经花了几个小时,非常感谢任何帮助!
数据库搜索
<?php
$rowsget = DB::table('friends')->where('requesteeid', $uid)-
>orWhere('inboundid', $uid)->where('approved', true)->get();
if(count($rowsget) > 0){
foreach($rowsget as $get) {
$getrequestee = $get->requesteeid;
$getinbound = $get->inboundid;
}
$rowfetchfriend = DB::table('users')->where('id', $getrequestee)-
>orWhere('id', $getinbound)->get(['id', 'avatar', 'username']);
?>
循环浏览好友的个人资料
<?php
foreach($rowfetchfriend as $loop) {
if($loop->id != $uid) { //make sure own user isnt displayed
echo $loop->username; // echo all usernames that are friends
}
}
?>
【问题讨论】:
-
您确定您的查询需要
->where('approved', true)吗?批准是那些已经批准的朋友,他们不能入站或出站 -
为什么要在问题标题中包含业务逻辑?没有人会通过阅读标题知道这个主题是关于什么的,因为
friends对于不了解您项目的人来说毫无意义...... -
@Xatenev 抱歉,我想的不对,我应该用行或类似的东西替换它
-
@OleksandrPobuta 如果我回显 $rowsget,则查询不是问题,行完美回显,当我尝试循环浏览用户信息时,我收到一条错误消息。