我正在創建一個數據列表并用 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 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消