我如何获取属于关系的价值

时间:2019-05-16 20:16:38

标签: laravel

我想检索一个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

1 个答案:

答案 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 ...等用户关系中提取所需的字段。