2014-04-11 4 views
0

좋아 내 코드에laravel 4.1 유효성 검사 URL을 입력

과 거의 모든 일이 일을 얻을 후의 i는 사용자의 URL 입력을

을 확인하는 방법에 대한 도움말을 그가 삽입 한 경우에 필요

꽤 좋은 여기에 404 페이지

을에 서문과하는 방법이 아닌 URL이 내 경로 파일입니다

Route::get('/', function() 
{ 
    return View::make('hello');  
}); 

Route::post('/', function() 
{ 
$url = Input::get('url'); 
$record = Url::where('urls', '=', $url)->first(); 
if ($record) { 
    return View::make('result') 
    ->with('shortend', $record->shortend); 
} 

function get_uniqe_short_url() 
{ 

    $shortend = base_convert(rand(1000,99999), 10, 36); 
    if (Url::where('shortend', '=' ,$shortend)->first()){ 
     get_uniqe_short_url(); 
    } 
    return $shortend; 
} 
$shortend = get_uniqe_short_url(); 

// otherwise add new row and return shortned url 
$row = new URl; 
    $row->urls = $url; 
    $row->shortend = $shortend; 
    $row->save(); 

// create a results view and present the short url to the usr 

if ($row){ 
    return View::make('result')->with('shortend',$shortend); 
} 
}); 


Route::get('{shortend}', function($shortend) 
    { 
    // query the DB For the row with that short url 
     $row = Url::where('shortend', '=', $shortend)->first(); 
    // if not found redirect to home page 
     if (is_null($row)) return Redirect::to('/'); 
    // else grab the url and redirect 
     return Redirect::to($row->urls); 

    }); 

내 많은 질문에 대해 용서하지만 나는 완전히 laravel에

답변

0

첫째로, 당신은 당신의 routes.php에 이런 논리가 있습니다. URL 라우터는 HTTP 요청을 받아서 올바른 컨트롤러와 메소드로 "라우팅"합니다. 컨트롤러를 시작하려면 the documentation을 참조하십시오.

"404 페이지로 리디렉션"하는 팬이 아닙니다. 대신 페이지가 발견되지 않으면 404 페이지가 표시되어야합니다. laravel을 사용하여이 작업을 수행하려면 App::abort(404);으로 전화하여 응용 프로그램을 종료하고 404 상태를 브라우저에 반환 할 수 있습니다. 당신은 404 오류에 "듣고"자신 만의 사용자 정의보기를 반환하여 추가로이 단계 수행 할 수 있습니다

App::missing(function() 
{ 
    return View::make('errors/404'); 
}); 

당신이 URL을 확인하는 더 많은 도움이 필요하면 알려줘을,하지만 난 당신이 코드를 구조 조정하는 것부터 시작해야한다고 생각 컨트롤러를 사용하여. 정규식이 URL과 일치하는지 확인하려면 this question을 확인하십시오. 내가 곧 돌아올 것이다 나에게 을 돕는

if(!preg_match('/expression/', $url)) { 
    App::abort(404); 
} 
+0

내가 지금 그것을 시도하고 난 당신이 나에게주는 해당 URL에서 찾게됩니다 도움을 주셔서 감사하고 감사합니다 : 이것은 당신이 PHP에서 정규 표현식을 사용하는 방법입니다 내가 코드를 테스트 한 결과로 말입니다. – Jone

+0

어떻게 진행되는지 알려주고 문제에 대한 조언을 계속 할 수 있습니다. 후반 재생 죄송 – Sam

+0

좋아 샘 하지만 나는 그것의 오늘 – Jone