ugrás a tartalomhoz

Archívum - Szep 5, 2017

Laravel 5 routing

csabessz47 · 2017. Szep. 5. (K), 20.50
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
Route::get('{url}', .....)
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::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);
});
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