我有两张桌子,例如
table_A,table_B
table_A
id username
5 kumar
6 pavan
table_B
id userid rname
1 testing
2 5 --
3 newtest
4 6 --
我想要的是
<select>
<option value='1'>testing</option>
<option value='2'>kumar</option>
<option value='3'>newtest</option>
<option value='4'>pavan</option>
</select>
如果rname为空意味着( - )所以基于table_B中的userid,从table_A获取用户名,那么我们如何使用带有pluck的laravel查询显示
答案 0 :(得分:1)
使用Laravel belongsTo()
关系。将两个模型设为TableA
和TableB
。在TableB
模型中,与TableA
建立关系,如 -
public function tableA()
{
return $this->belongsTo(TableA::class,'userid');
}
然后在你的控制器中 -
$tableb_datas = TableB::with('tableA')->get();
return view('your_view')->with('tableb_datas', $tableb_datas);
最后在你看来 -
<select>
@foreach($tableb_datas as $b)
@if($b->rname!="--")
<option value='{{$b->id}}'>{{$b->rname}}</option>
@else
<option value='{{$b->id}}'>{{$b->tableA->username}}</option>
@endif
@endforeach
</select>
答案 1 :(得分:1)
您可以使用merge功能。 merge()
方法将给定的数组或集合与原始集合合并。
$first = table_A::all();
$second = table_B::all();
$finalResult = $first->merge($second);
$result = $finalResult->all();
$finalResult->each(function($record) {
echo $record-><fieldName>.'<br />';
});
希望这能帮到你!