我想检索一个EmiratesTo关系的值。值正在返回,但是当我使用for循环时,它正在返回object of property [] not found
。
这是刀片上返回的json [user_request]:
{
"id": 2,
"name": "henry",
"email": "wvanye@ymail.com",
"email_verified_at": null,
"created_at": "2019-05-15 19:04:42",
"updated_at": "2019-05-15 19:04:42",
"Affiliate": "FMS",
"admin": 0
}
我的代码:
examrequest model
class examrequest extends Model
{
protected $table = 'examrequest';
public function users(){
return $this->belongsTo('App\User','id');
}
}
Controller
public function getRequest(){
$request = examrequest::first()->users;
$count = $this->isThereRequest();
return view('admin.request', ['user_request'=>$request]);
}
blade view
@foreach ($user_request as $key => $value )
<tr>
<th scope="row"></th>
<td>{{$value->id}}</td>
<td>{{$value->name}}</td>
<td>{{$value->email}}</td>
<td><button>Approve</button></td>
</tr>
@endforeach
I want to display all the values but its returning :: Trying to get property 'id' of non-object
答案 0 :(得分:1)
如果您正在寻找一个要循环通过的集合,那么使用first()
就不会得到,因为这不会提取一个集合,而只会提取一个对象。更改
$request = examrequest::first()->users;
到
$request = examrequest::with('users')->get();
这时,考试要求的集合全部都在$ request
内。
在刀片服务器端,如果要循环访问该集合并拉出每个用户,则可以通过从foreach中拉出用户来简化操作。更改:
@foreach ($user_request as $key => $value )
到
@foreach ($user_request as $request )
,然后从刀片页面上的循环内的$request
对象:$request->users->id
...等用户关系中提取所需的字段。