• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Laravel - relacja. Dodanie kategorii do wpisu

VPS Starter Arubacloud
0 głosów
158 wizyt
pytanie zadane 5 kwietnia 2020 w PHP przez marcolo Obywatel (1,530 p.)
edycja 5 kwietnia 2020 przez marcolo

Mam model 'post' i 'category' mam utworzoną relację pomiędzy nimi. Pododawałem sobie "z palca" do bazy wpisy, i pobiera się ok. Ale nie wiem, jak tworzyć wpisy w pivotowej tabeli przy dodawaniu posta.

W pivotovej tabeli jest tylko 'id', 'post_id' i 'category_id'. Ale post dopiero jest tworzony i nie mam jeszcze jego id, jak takie coś się robi?

Mogę mieć id używając:

$post->id;

ale czy jeśli mam utworzoną relację nie powinno to jakoś działać inaczej, nie jest to jakoś zautomatyzowane?

2 odpowiedzi

+2 głosów
odpowiedź 5 kwietnia 2020 przez eunstachy Stary wyjadacz (14,140 p.)
wybrane 6 kwietnia 2020 przez marcolo
 
Najlepsza

Jeśli masz utworzone odpowiednie relacje to tworzysz post np w ten sposób

$post = Post::create([
  // Post data
]);

Metoda create zwróci obiekt właśnie utworzonego postu. Następnie musz przypisać do tego postu kategorie (załóżmy, że będą to kategorie o id 1, 2 i 5.

$post->categories()->attach([1, 2, 5])

I to właściwie tyle :)

+1 głos
odpowiedź 5 kwietnia 2020 przez HaKIM Szeryf (87,590 p.)

Jeżeli korzystasz z Doctrine ORM to utrwal obiekt (persist) przed odwołaniem do idka.

$this->em->persist($entity);
$entity->id();

Ja osobiście nie lubię takiego syfu w kodzie, więc po prostu w konstruktorze encji wymagam podanie idka, przez co klient ma dostęp do utworzonego id bez takiego obrzydlistwa jak na górze.

 

 
1
komentarz 5 kwietnia 2020 przez HaKIM Szeryf (87,590 p.)

Ugh, nie zauważyłem, że piszesz w laravel.

W takim wypadku mogę od siebie jedynie poratować linkiem.

https://stackoverflow.com/questions/30465374/how-to-get-the-id-of-the-current-model-in-laravel-when-saving

Podobne pytania

0 głosów
0 odpowiedzi 109 wizyt
+1 głos
1 odpowiedź 490 wizyt
pytanie zadane 12 lipca 2021 w Java przez kozluck Nowicjusz (220 p.)
0 głosów
1 odpowiedź 859 wizyt
pytanie zadane 23 grudnia 2019 w SQL, bazy danych przez gmcode Gaduła (3,120 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...