Mam dwie tabele: users
, orders
. Próbuję uzyskać wszystkie zamówienia dla bieżącego użytkownika.Jak uzyskać dane z powiązanej tabeli w Laravel (od jednego do wielu)?
Users Orders
_____ ______
id | name id | user_id
modelu użytkownika:
public function orders(){
return $this->hasMany("App\Order");
}
modelu produktu:
public function user(){
return $this->hasOne("App\User", 'user_id', 'id');
}
Zapytanie w kontrolerze:
public function index()
{
$orders = Order::where('user_id', Auth::guard('api')->id())->get();
return response()->json(
$orders->user
);
}
Otrzymuję wynik NULL, robię coś nie tak, ponieważ w obu tabelach są powiązane wiersze.
Funkcja kontroler nie będzie działać, ponieważ 'get()' Metoda zwraca kolekcję i starasz się uzyskać właściwość 'użytkownik portu od a kolekcja, która nie ma sensu. Co powinna zrobić ta funkcja? –
Potrzebuję więc uzyskać wszystkie informacje o użytkowniku z tabeli "Użytkownicy" i uzyskać to samo żądanie wszystkich zamówień użytkownika. Co zamiast 'get()' powinienem użyć? – Dev
Co się dzieje przy użyciu 'Auth :: user() -> id' zamiast' Auth :: guard ('api') -> id() '? Otrzymuję zero używając tego, co masz. –