如果有用户标识,则显示数据-laravel

我正在创建一个数据列表,并使用foreach打印它,我希望它仅在user_id与读取数据的user_id匹配时显示数据。 (以前我已经创建了用户身份验证)

我希望输入的用户仅看到包含其user_id的数据。

enter image description here

我已经在用户表“ id”字段与user_id之间建立了关系

通过以下方式传递数据:

  public function index()
{
    $servicios = App\Servicio::all();

    return view('home', compact('servicios'));
}

如何显示与每个用户的user_id对应的数据,而其他人则看不到它们的数据?

评论
  • WOW
    WOW 回复

    您应该从请求中获取用户,然后按其ID进行过滤...

      public function index()
    {
    $user_id=app('request')->user()->id;
        $servicios = App\Servicio::where('user_id',$user_id)->all();
        return view('home', compact('servicios'));
    }
    

    用户会出现在您的请求中,以确保您应该 在(auth)中间件中使用此方法的路由

  • beos
    beos 回复

    You can get the user's list of services easily using Auth::user(), example:

    User::with(['servicios'])->find(Auth::id());