2016-03-21 20 views
0

Laravel 5.2, bir yolun mevcut olup olmadığını kontrol etmek için belirli bir yol (işleyici) var mı? gibi temel bir URL için, Diyelim ki:"URL" yolunun mevcut olup olmadığını nasıl kontrol edebilirim?

http://www.example.com/laravel 

Sonra mevcut olmayan URL'ler (örn: /laravel) işlemek istiyorum:

Route::get('/{page}', funtion(){ 
    //check if $page is a valid route URL? Or 404? 
}); 

I do Nasıl benim Ana Sayfa Yönlendiricisi'nden dan Bu yolun geçerli olup olmadığını bilerek kontrol et?

+0

hopw laravel ile artık işler herhangi bir yakalama ile son rotayı gelmiştir gelmez ekleme ('route.name'); –

+0

Yani yukarıdaki rotaya göre 'Route :: has (' route.laravel ') 'demek istiyor musunuz? –

+1

Şunu mu demek istediniz: 1) rota takma adının kullanılıp kullanılmadığını kontrol edin; veya 2) belirli bir URL'nin rotalarınızdan biriyle eşleşip eşleşmeyeceğini kontrol edin. –

cevap

3

Son olarak Route::get('/{page}','[email protected]'); sonunuzu yerleştirin. Bu şekilde, kullanmadan önce başka bir rota bulması halinde, ancak eğer o değilse, bununla yakalanır. Örneğin:

Route::get('/welcome','[email protected]'); 
Route::get('/test','[email protected]'); 
Route::get('/{page}','[email protected]'); 

doğru denetleyiciye /welcome veya olması gerektiği /test rotayı onları vurmak için olsaydı. Eğer /hello nolu vurmak istersen, MainController'a gitmeli ve çarptığın sayfa olan isabetini $page ile bul. o [email protected] vurursa

Eğer temelde olduğunu bildiğiniz bir 404.

Eğer böyle bir şey yaratabilir nedense rotayı vurmadan önce bilmeniz gerekiyorsa: Kullandığım

Route::get('/checkurl/{page}',function($page) { 
    $exists = Route::has('/' . $page); 
    return (new Response(json_encode(['exists'=>$exists]),200); 
}); 
3

benim son yol olarak şu: henüz farkında değilseniz

Route::any('{catchall}', function($page) { 
    abort(404); 
})->where('catchall', '(.*)'); 

, abort(404)manzaranın 404.blade.php dönecektir.

+0

Şimdiye kadar çok iyi. Bu en iyi seçenek gibi görünüyor – mojoblanco

0

:: Rota hakkında 5.5.1+

İlgili konular