这是我在控制器中的函数:
$bssr = table::('adv')
->leftjoin('picture', 'adv.id', '=', 'picture.advid')
->select('adv.*', 'picture.path)
->where('adv.id', '=', '1')
->paginate(20);
return view('bssr.category')->with('bssr', $bssr);
然后我有我的刀片如下:
@foreach($bssr as $data)
<table>
<tr>
<td width="20%">
<img src="{{url('avatar/'.$data->path) }}">
</td>
<td>
<a href="{{ url('details/'.$data->id) }}">{{ $data->advtopic }}</a>
</td>
</tr>
</table>
@endforeach
我的表格如下:
表:广告
id advtopic
1 my adv name
表:p
id path advid
1 mypath1 1
2 mypath2 1
3 mypath3 1
我的边栏选项卡结果不应该只返回 1 行吗? 结果给出 3 行。
谁能帮我根据表"adv"只返回 1 行?任何帮助将不胜感激。
我认为你应该试试这个:
$bssr = table::('adv')
->leftjoin('picture', 'picture.advid', '=', 'adv.id')
->select('adv.id AS Id','adv.advtopic AS advtopic', 'picture.path AS path')
->where('adv.id', '=', '1')
->groupBy('picture.advid')
->paginate(20);
return view('bssr.category',compact('bssr'));
@foreach($bssr as $data)
<table>
<tr>
<td width="20%">
<img src="{{url('avatar/'.$data->path) }}">
</td>
<td>
<a href="{{ url('details/'.$data->Id) }}">{{ $data->advtopic }}</a>
</td>
</tr>
</table>
@endforeach
希望这对你有用!!
在您的情况下,是的,它将返回 3 个结果,因为您的查询与左侧表(图片表(上的 3 行匹配。我不知道你想从图片表中得到什么,你想要最近的吗?第一个?还是最后一个?还是只是随机的?
$bssr = table::('adv')
->leftjoin('picture', 'adv.id', '=', 'picture.advid')
->select('adv.*', 'picture.path)
->where('adv.id', '=', '1')
->groupBy('adv.id') // try adding this if you want that result
->paginate(20);
return view('bssr.category')->with('bssr', $bssr);
请修改您的问题,以便我可以修改我的答案。不要忘记在图片桌上包括您想要获得的内容。