Laravel 5 routing
Sziasztok,
Laravel 5-ben nem jöttem még rá egy routinggal kapcsolatos probléma megoldására, minden segítség jól jönne.
A route fájlok kisebb fájlokra van bontva, minden "csomaghoz" tartozik egy.
Egy /budapest url estén szeretnék olyat, hogy
- először megnézi pl a videók route fájljában, hogy tud-e visszaadni valamit (mondjuk ahol a videó nevében benne van a "budapest")
- ha nincs semmi, akkor megy tovább a képek route fájljába, hogy van-e budapest nevű kép,
- ha nincs, akkor nézi a települések "csomaghoz" tartozó route fájlban, hogy van-e budapest nevű település.
Az url szerkezeten nem tudok változtatni, tehát nem lehet (/kepek/budapest, /videok/budapest).
Ha esetleg egy nagy route fájl lenne, ez pedig a legvégén, akkor is kéne egy nagy callbackbe gányolás...Route fájlokba belegányolni amúgy sem szeretek ilyet, több controllert hívogatni meg fura lenne :)
Vagy esetleg a route-ba adott callback-ben egy exceptiont dobni (vagy return null :), ami után a route listából jönne a következő, így maradhatna szétbontogatva...
Került már valaki ilyen helyzetbe?
Tudtok erre egy -lehetőleg- szép megoldást?
Köszi előre is
■ Laravel 5-ben nem jöttem még rá egy routinggal kapcsolatos probléma megoldására, minden segítség jól jönne.
A route fájlok kisebb fájlokra van bontva, minden "csomaghoz" tartozik egy.
Egy /budapest url estén
Route::get('{url}', .....)
- először megnézi pl a videók route fájljában, hogy tud-e visszaadni valamit (mondjuk ahol a videó nevében benne van a "budapest")
- ha nincs semmi, akkor megy tovább a képek route fájljába, hogy van-e budapest nevű kép,
- ha nincs, akkor nézi a települések "csomaghoz" tartozó route fájlban, hogy van-e budapest nevű település.
Az url szerkezeten nem tudok változtatni, tehát nem lehet (/kepek/budapest, /videok/budapest).
Ha esetleg egy nagy route fájl lenne, ez pedig a legvégén, akkor is kéne egy nagy callbackbe gányolás...
Route::get('{url}', function($url, ImageRepository $imageRepository, VideoRepository $videoRepository, SettlementRepository $settlementRepository) {
// van kép?
$imageRepository->findByUrl($url);
// ha nincs kép
$videoRepository->findByUrl($url);
// ha nincs videó
$settlementRepository->findByUrl($url);
});
Vagy esetleg a route-ba adott callback-ben egy exceptiont dobni (vagy return null :), ami után a route listából jönne a következő, így maradhatna szétbontogatva...
Került már valaki ilyen helyzetbe?
Tudtok erre egy -lehetőleg- szép megoldást?
Köszi előre is
Közben megoldódott a
kiderült, hogy élnek olyan url-ek is, hogy budapest/kepek és társai.
Szóval szerencsére nem kell megalkotnom ezt a káoszt.