为laravel上的foreach()提供的参数无效
我收到类似的错误消息:为foreach()提供的参数无效 对于我的方法index(),我有:为laravel上的foreach()提供的参数无效,laravel,laravel-5,Laravel,Laravel 5,我收到类似的错误消息:为foreach()提供的参数无效 对于我的方法index(),我有: public function index(Request $request) { if(\Auth::user()->hasRole('admin')){ if($request->has('search')) $remarks = Remark::orderBy('instruction', 'asc')->whe
public function index(Request $request)
{
if(\Auth::user()->hasRole('admin')){
if($request->has('search'))
$remarks = Remark::orderBy('instruction', 'asc')->where('instruction','like','%'.$request->input('search').'%');
else
$remarks = Remark::all();
}else{
\Auth::user()->load('remarks');
$remarks = \Auth::user()->remarks;
}
return view('admin.remarks.index', compact('remarks'));
}
关于index.blade.php,我的循环“for”如下所示:
<th>Instruction</th>
<th>Description</th>
<th>Date seance</th>
<th>Name Candidate</th>
<th>Email</th>
</tr>
</thead>
@foreach($remarks as $remark)
<tr>
<td> {{$remark->instruction}}</td>
<td> {{$remark->description}}</td>
<td> {{$remark->seances->date_seance}}</td>
<td> {{$remark->seances()->first()->candidates->name}}</td>
<td> {{$remark->seances()->first()->candidates->email}}</td>
<td>
指令
描述
日期座
候选人姓名
电子邮件
@foreach($备注为$备注)
{{$remark->instruction}
{{$remark->description}
{{$remark->seanse->date\u seanse}
{{$remark->seanses()->first()->candidates->name}
{{$remark->seanses()->first()->候选者->电子邮件}
你知道我的问题吗?我不明白???您需要在雄辩的查询生成器之后调用get()
,从数据库中获取数据。除非它是一个有说服力的查询生成器对象(不可编辑,因此不能在for循环中使用)
函数get()
$rements=Remark::orderBy('instruction','asc'))
->其中('instruction'、'like'、'%'。$request->input('search').%)
->get();
您应该从数据库而不是从会话进行查询,并且不要忘记在用户模型上定义关系:
关于用户模型:
public function remarks(){
return $this->hasMany(Remark:class)
}
在你的控制器上
public function index(Request $request)
{
if(\Auth::user()->hasRole('admin')){
if($request->has('search'))
$remarks = Remark::orderBy('instruction', 'asc')->where('instruction','like','%'.$request->input('search').'%');
else
$remarks = Remark::all();
}else{
$user = Users::find(Auth::id());
$remarks=$user->remarks
}
return view('admin.remarks.index', compact('remarks'));
}
是否总是返回相同的错误?我看到,如果用户有一个管理员角色,并且请求中有一个搜索字段,那么您只是在生成查询,而不是执行查询,因此foreach参数将是一个查询生成器对象,而不是集合@porloscerrosψ:当我连接到角色“administrator”时,我有另一条错误消息。“Method Illumb\Database\Eloquent\Collection::links不存在。”对于这种情况,请查看Tharaka Dilshan的答案,您必须添加一个get或paginate来运行查询。那么,在所有根据情况而变化的情况下,foreach都不起作用吗?您是否在视图中使用分页链接?仅为了调试,我会尝试返回Remark::all(),如果这不起作用,其他链接都不会起作用,问题是elsewhere@porloscerrosψ:我的问题在于我的关系,我已经创建了一个主题。这里更准确,谢谢你,但我总是有同样的信息。。。我做了一个dd(备注)
我有这样的信息->空???我想\Auth::user()->备注如果尚未在用户
模型上定义备注()
关系,则code>返回null。啊,好的,我的问题出在我的模型中。。。你觉得我的架构和模型怎么样?谢谢=>