例如我有两个表
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 中的用户 ID,从 table_A 获取用户名,那么我们如何使用 Laravel 查询和 pluck 显示
使用 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>
您可以使用合并功能。 merge()
方法将给定的数组或集合与原始集合合并。
$first = table_A::all();
$second = table_B::all();
$finalResult = $first->merge($second);
$result = $finalResult->all();
$finalResult->each(function($record) {
echo $record-><fieldName>.'<br />';
});
希望对您有所帮助!