在Laravel中查询来自刀片的关系?

时间:2017-06-02 22:16:42

标签: laravel laravel-5 laravel-4 laravel-5.2 laravel-5.1

我有以下表格

  • Users
  • request
  • servers

以下列方式有关。

  • User有很多request
  • Sever有很多request

现在我想要的是让所有与用户无需重复的请求相关联的服务器。

我必须在刀片视图中执行此操作,因为在视图中我正在迭代服务并在表中显示它们。

到目前为止,我一直在尝试以下

@foreach($requests as $request)    
@php
    $serversUser = \App\Server::where('requestsofservice', function($query){
    $query->where('user_id',$request->user->id);
    });
@endphp
@endforeach

但由于变量$request->user->id而无法正常工作。

,结果是

  

未定义的变量:请求

那么,我怎样才能获得用户a与他们的请求相关的服务而不重复。

当我迭代我发送的请求时会发生什么 控制器到视图,在我得到的点击foreach内 用户以及该用户在其请求中拥有的所有服务器。

1 个答案:

答案 0 :(得分:2)

您的函数中不存在

$request。通过function($query) use($request)传递它。

请参阅PHP关于变量范围的文档:http://php.net/manual/en/language.variables.scope.php

和匿名函数(特别是“示例#3从父作用域继承变量”位):http://php.net/manual/en/functions.anonymous.php