为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕妹3146593 2023-04-15 20:55:41
我正在创建一个数据列表并用 foreach 打印它,我希望它仅在 user_id 与读取数据的 user_id 匹配时才显示数据。(以前我已经创建了用户身份验证)我希望进入的用户只能看到包含他们的 user_id 的数据。我已经建立了用户表“id”字段与 user_id 之间的关系传递数据:  public function index(){    $servicios = App\Servicio::all();    return view('home', compact('servicios'));}如何在不让其他人看到他们的数据的情况下显示与每个人的 user_id 对应的数据?
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

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


public function servicios() {

   return $this->hasMany(Servicio::class);

}

然后在你的控制器中:


public function index()

{

    $servicios = auth()->user()->servicios;


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

}


查看完整回答
反对 回复 2023-04-15
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

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


查看完整回答
反对 回复 2023-04-15
?
慕容森

TA贡献1853条经验 获得超18个赞

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

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


查看完整回答
反对 回复 2023-04-15
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信