如果您有用户 ID 则显示数据 - laravel

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

我希望进入的用户只能看到包含他们的 user_id 的数据。

http://img3.mukewang.com/643a9ee50001aab006580097.jpg

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


传递数据:


  public function index()

{

    $servicios = App\Servicio::all();


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

}

如何在不让其他人看到他们的数据的情况下显示与每个人的 user_id 对应的数据?


慕妹3146593
浏览 113回答 3
3回答

婷婷同学_

您可以在模型内部建立关系User.php。public function servicios() {   return $this->hasMany(Servicio::class);}然后在你的控制器中:public function index(){    $servicios = auth()->user()->servicios;    return view('home', compact('servicios'));}

红糖糍粑

您应该从您的请求中获取用户,然后按其 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)中间件中使用此方法的路由

慕容森

您可以使用 轻松获取用户的服务列表Auth::user(),例如:User::with(['servicios'])->find(Auth::id());
打开App,查看更多内容
随时随地看视频慕课网APP