Excuses voor mijn mogelijk verwarrende verhaal 
Voor een projectje waar ik Laravel voor willen gaan gebruiken is het de bedoeling dat er per klant een database komt. Vanuit het loginscherm wordt er in de gebruikers tabel van de hoofddatabase een controle uitgevoerd en wordt de juiste klant database gezocht waaruit verderop de gegevens moeten komen.
In de voorbeelden van Laracast gaat het in principe om het gebruik van 1 database waarbij je direct verbinding hebt. Maar ik wil dus eerst de ene database raadplegen en op basis van dat resultaat de 2e connectie opzetten maar op zo'n manier dat er voor de rest van de werking gedaan kan worden alsof dat de "main" connectie is zonder dat ik bij elke query of get moet specificeren welke verbinding er gebruikt moet worden.
De users en password_reset tabellen worden dus in een aparte database gezet (bijv master) en het is de bedoeling dat bij de users dan nog wat info komt over welke database die gebruiker toegang tot moet hebben. Met die gegevens moet dus binnen het framework een nieuwe verbinding gelegd worden voor de rest van de werking. In config/database.php kan je wel allerlei connecties neerzetten, maar ik wil dus niet alle connecties hardcoded erin hebben. Dus waar kan ik dan het beste die connectie in 1x zetten zonder dat ik bijv in ieder model of controller de Config bijv aan moet passen.
=======================
Daarnaast kan ik nog niet helemaal vinden waar je nou zeer algemene functies het beste kan plaatsen en hoe te gebruiken. Verder vind ik nog wel dat het net iets te vrij is nog. Als voorbeeld:
- Zeg de url is garage.nl/auto/rood
- Dan heb je in de web een route die zegt autocontroller->get_by_color()
- Die controller kan op zijn beurt het model auto::find aanroepen of auto::where('color','rood') en de resultaten doorgooien naar een view.
Maar bij die laatste wrikt de schoen een beetje. Wat ik een beetje gewend ben is dat een class bij mij toegang geeft tot een tabel bijvoorbeeld. Dus een class auto geeft 1 of meerdere auto's terug. Maar alle functionaliteit, alle soort "uitzoekdingen" horen binnen die class, in laravel dus Model. En dus niet in de Controller.
Alleen, wat voor dingen doe je dan wel in de Controller. Ga je daar dan hele algemene functions plaatsen gerelateerd aan? Stel je wilt op basis van een geboortedatum een leeftijd berekenen en daar heb je een functie voor. Ga je die dan bijv in de UserController plaatsen? Stel dat je nog een tabel hebt als je het bijvoorbeeld over kinderen zou hebben waar je ook een leeftijd voor wilt vastleggen, dan ga je niet binnen een KindController diezelfde functie aanleggen. En om de leeftijd op te halen vind ik het weer onlogisch om te zeggen van $kind_leeftijd = UserController->get_age();.
Dus waar plaats je in Laravel in de structuur de functies die je normaalgesproken in bijv een lib zou zetten. Wat is wijsheid
Voor een projectje waar ik Laravel voor willen gaan gebruiken is het de bedoeling dat er per klant een database komt. Vanuit het loginscherm wordt er in de gebruikers tabel van de hoofddatabase een controle uitgevoerd en wordt de juiste klant database gezocht waaruit verderop de gegevens moeten komen.
In de voorbeelden van Laracast gaat het in principe om het gebruik van 1 database waarbij je direct verbinding hebt. Maar ik wil dus eerst de ene database raadplegen en op basis van dat resultaat de 2e connectie opzetten maar op zo'n manier dat er voor de rest van de werking gedaan kan worden alsof dat de "main" connectie is zonder dat ik bij elke query of get moet specificeren welke verbinding er gebruikt moet worden.
De users en password_reset tabellen worden dus in een aparte database gezet (bijv master) en het is de bedoeling dat bij de users dan nog wat info komt over welke database die gebruiker toegang tot moet hebben. Met die gegevens moet dus binnen het framework een nieuwe verbinding gelegd worden voor de rest van de werking. In config/database.php kan je wel allerlei connecties neerzetten, maar ik wil dus niet alle connecties hardcoded erin hebben. Dus waar kan ik dan het beste die connectie in 1x zetten zonder dat ik bijv in ieder model of controller de Config bijv aan moet passen.
=======================
Daarnaast kan ik nog niet helemaal vinden waar je nou zeer algemene functies het beste kan plaatsen en hoe te gebruiken. Verder vind ik nog wel dat het net iets te vrij is nog. Als voorbeeld:
- Zeg de url is garage.nl/auto/rood
- Dan heb je in de web een route die zegt autocontroller->get_by_color()
- Die controller kan op zijn beurt het model auto::find aanroepen of auto::where('color','rood') en de resultaten doorgooien naar een view.
Maar bij die laatste wrikt de schoen een beetje. Wat ik een beetje gewend ben is dat een class bij mij toegang geeft tot een tabel bijvoorbeeld. Dus een class auto geeft 1 of meerdere auto's terug. Maar alle functionaliteit, alle soort "uitzoekdingen" horen binnen die class, in laravel dus Model. En dus niet in de Controller.
Alleen, wat voor dingen doe je dan wel in de Controller. Ga je daar dan hele algemene functions plaatsen gerelateerd aan? Stel je wilt op basis van een geboortedatum een leeftijd berekenen en daar heb je een functie voor. Ga je die dan bijv in de UserController plaatsen? Stel dat je nog een tabel hebt als je het bijvoorbeeld over kinderen zou hebben waar je ook een leeftijd voor wilt vastleggen, dan ga je niet binnen een KindController diezelfde functie aanleggen. En om de leeftijd op te halen vind ik het weer onlogisch om te zeggen van $kind_leeftijd = UserController->get_age();.
Dus waar plaats je in Laravel in de structuur de functies die je normaalgesproken in bijv een lib zou zetten. Wat is wijsheid