Jestem nowiutka dla Laravel i Eloquent (i mam minimalne doświadczenie z ORMem w ogóle).Eloquent/Laravel Trójdrożna relacja wiele do wielu
Powiedzmy mam trzy tabele bazy danych:
- widżetów
- Actions
- Użytkownicy
Mam modelowane jedną tabelę skrzyżowanie, które ma kolumn:
widget_id
action_id
user_id
- datownik
Punkt styku jest do prowadzenia dziennika interakcji - Take znacznik czasu za każdym razem user
wykonuje action
na widget
. Widzę, jak modelować proste relacje wiele do wielu za pomocą Eloquent i działa to dobrze, ale nie jestem pewien, jak wymodelować bardziej skomplikowaną trójstronną relację.
Zresztą, nawet gdybym miał związek po prostu wiele-do-wielu (słownie widget
do action
tak byłoby tabeli o nazwie action_widget
), jak mogę dodać wyraźnie modelu tabeli w wymowny action_widget
, dla w celu śledzenia dodatkowych danych o każdej relacji (np. znacznik czasu, pole komentarza, itp.). Czy po prostu robię to w całkowicie niewłaściwy sposób?
Będąc nowicjuszem w ORM, czuję się bardzo ograniczony co do tego, co mogę zrobić! Czy to uczucie odejdzie? : p
Dzięki, używanie własnego modelu zdecydowanie wydaje się najlepszym rozwiązaniem. – Raolin
Czy mógłbyś wyjaśnić nieco, w jaki sposób podchodziłbyś do tego? Mam podobny problem, ale nie wiem wystarczająco dużo o Eloquent, aby go przestrzegać, a dokumenty nie są wystarczająco dobre. – Mcg1978
hasManyThrough nie działa w tym przypadku. Ponieważ hasManyThrough nie zwraca relacji, a jedynie wartość trzeciego atrybutu. – Mesuti