• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

在laravel中组合2个表格

jquery 来源:Ronald Torres 5次浏览

我想结合我的用户表和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); 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)