Php 如果您有用户id-laravel,则显示数据

Php 如果您有用户id-laravel,则显示数据,php,mysql,laravel,Php,Mysql,Laravel,我正在创建一个数据列表,并使用foreach打印它,我希望它仅在用户id与读取数据的用户id匹配时显示数据。(以前我已经创建了用户身份验证) 我希望输入的用户只看到包含其用户id的数据 我已经建立了users表'id'字段与user\u id之间的关系 通过以下方式传递数据: public function index() { $servicios = App\Servicio::all(); return view('home', compact('servicios'

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

我希望输入的用户只看到包含其用户id的数据

我已经建立了users表'id'字段与user\u id之间的关系

通过以下方式传递数据:

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

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

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

您可以使用
Auth::user()
轻松获取用户的服务列表,例如:


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

您应该从请求中获取用户,然后根据其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)中间件中使用此方法的路由可以在
User.php
模型内建立关系

public function servicios() {
   return $this->hasMany(Servicio::class);
}
然后在控制器中:

public function index()
{
    $servicios = auth()->user()->servicios;

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