【问题标题】:show data if you have user id - laravel如果您有用户 ID,则显示数据 - laravel
【发布时间】:2020-05-24 05:51:04
【问题描述】:

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

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

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

通过以下方式传递数据:

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

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

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

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    您可以在 User.php 模型中建立关系。

    public function servicios() {
       return $this->hasMany(Servicio::class);
    }
    

    然后在你的控制器中:

    public function index()
    {
        $servicios = auth()->user()->servicios;
    
        return view('home', compact('servicios'));
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2018-05-22
          • 1970-01-01
          • 2015-12-15
          • 1970-01-01
          • 2018-10-28
          • 2021-11-23
          • 2016-12-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多