我正在创建一个数据列表并用 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'));
}
红糖糍粑
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)中间件中使用此方法的路由
慕容森
TA贡献1853条经验 获得超18个赞
您可以使用 轻松获取用户的服务列表Auth::user()
,例如:
User::with(['servicios'])->find(Auth::id());
- 3 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消