2015-01-09 140 views

回答

3

我假設你想檢查是否有一個匹配某個URL的路由。

$routes = Route::getRoutes(); 
$request = Request::create('the/url/you/want/to/check'); 
try { 
    $routes->match($request); 
    // route exists 
} 
catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e){ 
    // route doesn't exist 
} 
+0

有沒有辦法通過Laravel檢查外部URL? – rotaercz

+0

@ rotaercz至少不是一個更好的那個,你在你的問題中鏈接的那個...... – lukasgeiter

+0

啊,好的。謝謝。 – rotaercz

0

試試這個功能

function checkRoute($route) { 
    $routes = \Route::getRoutes()->getRoutes(); 
    foreach($routes as $r){ 
     if($r->getUri() == $route){ 
      return true; 
     } 
    } 

    return false; 
} 
+1

這對路由參數不起作用 - 使用'$ routes-> match()'會解決這個問題。 – pseux

0

不是特別laravel功能,但你可以在這個

function urlExists($url = NULL) 
{ 
    if ($url == NULL) return false; 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $data = curl_exec($ch); 
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    if ($httpcode >= 200 && $httpcode < 300) { 
     return true; 
    } else { 
     return false; 
}