laravel 5中的分页与where条件的关系
型号smsHeaderlaravel 5中的分页与where条件的关系,laravel,pagination,relation,Laravel,Pagination,Relation,型号smsHeader protected $fillable = [ 'type', 'imei', 'login', 'ver' ]; public function detail() { return $this->hasMany('App\Model\smsDetail', 'id_header'); } 控制器 $smsheader = smsHeader::orderBy('id', 'desc')->where('login'
protected $fillable = [
'type',
'imei',
'login',
'ver'
];
public function detail()
{
return $this->hasMany('App\Model\smsDetail', 'id_header');
}
控制器
$smsheader = smsHeader::orderBy('id', 'desc')->where('login', $user->email)->paginate(20);
return view('app.inbox')->with('smsheader', $smsheader);
视图
@foreach($smsheader as $header)
@foreach($header->detail->where('type', '1') as $detail)
<tr>
<td>{{$detail->number}}</td>
<td>{{$detail->name}}</td>
<td>{{$detail->text}}</td>
<td>{{$detail->date}}</td>
</tr>
@endforeach
@endforeach
@foreach($smsheader作为$header)
@foreach($header->detail->where('type','1')作为$detail)
{{$detail->number}
{{$detail->name}
{{$detail->text}
{{$detail->date}
@endforeach
@endforeach
但是分页的结果是错误的,我如何在where smsdetail条件下设置分页。。。。??
对不起,我的英语不好这行显示错误
$header->detail->where('type','1')
您可以在foreach中访问$header->detail
,如果要使用where条件,则需要在末尾使用get()
,如下所示
@foreach($smsheader as $header)
@foreach($header->detail->where('type', '1')->get() as $detail)
<tr>
<td>{{$detail->number}}</td>
<td>{{$detail->name}}</td>
<td>{{$detail->text}}</td>
<td>{{$detail->date}}</td>
</tr>
@endforeach
@endforeach
@foreach($smsheader作为$header)
@foreach($header->detail->where('type','1')->get()作为$detail)
{{$detail->number}
{{$detail->name}
{{$detail->text}
{{$detail->date}
@endforeach
@endforeach
此行显示错误$header->detail->where('type','1')
您可以在foreach中访问$header->detail
,如果要使用where条件,则需要在末尾使用get()
,如下所示
@foreach($smsheader as $header)
@foreach($header->detail->where('type', '1')->get() as $detail)
<tr>
<td>{{$detail->number}}</td>
<td>{{$detail->name}}</td>
<td>{{$detail->text}}</td>
<td>{{$detail->date}}</td>
</tr>
@endforeach
@endforeach
@foreach($smsheader作为$header)
@foreach($header->detail->where('type','1')->get()作为$detail)
{{$detail->number}
{{$detail->name}
{{$detail->text}
{{$detail->date}
@endforeach
@endforeach
叶片视图中的Laravel查询不会自动执行。他们只需准备另一个QueryBuilder实例。您仍然需要运行其中一个“execute”方法(该方法将在下面运行PDOStatement::execute()。这些方法是:
- first()(将结果集中的第一个结果作为单个对象返回)
- get()(返回一个集合(带有一些附加功能的ArrayObject))
- paginate($numberpage)(返回包含额外元信息的集合,以传递给通过$Collection->links()访问的$links属性)
@foreach($smsheader as $header)
@foreach($header->detail->where('type', '1')->get() as $detail)
<tr>
<td>{{$detail->number}}</td>
<td>{{$detail->name}}</td>
<td>{{$detail->text}}</td>
<td>{{$detail->date}}</td>
</tr>
@endforeach
@endforeach
@foreach($smsheader作为$header)
@foreach($header->detail->where('type','1')->get()作为$detail)
{{$detail->number}
{{$detail->name}
{{$detail->text}
{{$detail->date}
@endforeach
@endforeach
叶片视图中的Laravel查询不会自动执行。他们只需准备另一个QueryBuilder实例。您仍然需要运行其中一个“execute”方法(该方法将在下面运行PDOStatement::execute()。这些方法是:
- first()(将结果集中的第一个结果作为单个对象返回)
- get()(返回一个集合(带有一些附加功能的ArrayObject))
- paginate($numberpage)(返回包含额外元信息的集合,以传递给通过$Collection->links()访问的$links属性)
@foreach($smsheader as $header)
@foreach($header->detail->where('type', '1')->get() as $detail)
<tr>
<td>{{$detail->number}}</td>
<td>{{$detail->name}}</td>
<td>{{$detail->text}}</td>
<td>{{$detail->date}}</td>
</tr>
@endforeach
@endforeach
@foreach($smsheader作为$header)
@foreach($header->detail->where('type','1')->get()作为$detail)
{{$detail->number}
{{$detail->name}
{{$detail->text}
{{$detail->date}
@endforeach
@endforeach
事实上,我已经试过了。。没有get();没关系。。。我的意思是关于分页的错误。。。分页显示了$smsheader而不是$detail,其中条件。。。例子。。。在smsheader::where('login',$user->email)中,他们有100个结果数据(5页)。。。但在视图中,我再次详细设置了位置()。。。其中详细显示了20个数据。。。在我看来它必须显示2页而不是5页。。。在此之前谢谢..@Megandi您的where条件不会对$smsheader产生影响。如果您需要,您必须在控制器上执行此操作。您可以告诉我如何执行此操作吗?您可以使用WHEREHADS。实际上,我已经尝试了。。没有get();没关系。。。我的意思是关于分页的错误。。。分页显示了$smsheader而不是$detail,其中条件。。。例子。。。在smsheader::where('login',$user->email)中,他们有100个结果数据(5页)。。。但在视图中,我再次详细设置了位置()。。。其中详细显示了20个数据。。。在我看来它必须显示2页而不是5页。。。在此之前谢谢..@Megandi您的where条件不会对$smsheader产生影响。如果您需要,您必须在控制器上执行此操作。您可以告诉我如何执行此操作吗?您可以使用WHEREHADS。实际上,我已经尝试了。。没有get();没关系。。。我的意思是关于分页的错误。。。分页显示了$smsheader而不是$detail,其中条件。。。例子。。。在smsheader::where('login',$user->email)中,他们有100个结果数据(5页)。。。但在视图中,我再次详细设置了位置()。。。其中详细显示了20个数据。。。在我看来它必须显示2页而不是5页。。。谢谢你。。对不起,我的英语不好。事实上,我已经试过了。。没有get();没关系。。。我的意思是关于分页的错误。。。分页显示了$smsheader而不是$detail,其中条件。。。例子。。。在smsheader::where('login',$user->email)中,他们有100个结果数据(5页)。。。但在视图中,我再次详细设置了位置()。。。其中的细节只显示了20D