在laravel中组合2个表格
我想结合我的用户表和AcitvationCodes表并将它们显示在一个foreach循环中。我的ActivationCodes表有一个外键“user_id”。这里是我的代码:在laravel中组合2个表格
$data['codes'] = ActivationCode::orderBy('id','desc')->paginate(15);
在我的foreach循环中我加了这个,它不起作用。请帮忙。
@foreach($codes as $p) @php $rr = \App\User::where('id',$p->user_id)->first(); @endphp
<td>{{$rr->name}} </td>
@endforeach
回答:
您正在尝试加载没有任何用户连接的激活码where('user_id', 0)
。然后你试图获取代码的用户User::where('id', $p->user_id)
。当然,这不起作用,因为你加载的代码没有任何用户。您可能会加载所有的激活码与它的用户:
ActivationCode::with('user')->latest('id')->paginate(15);
,然后显示相关的用户,不执行新的查询为每个用户:
@foreach($codes as $code) <td>{{ $code->user->name }}</td>
@endforeach
为了使它工作,你需要有定义这种关系:
public function user() {
return $this->belongsTo(User::class);
}
以上是 在laravel中组合2个表格 的全部内容, 来源链接: utcz.com/qa/262083.html