2013-02-15 5 views
5

Mojolicious 프레임 워크를 사용하여 앱을 프로그래밍하는 방법을 배우는 중이고 경로 이름을 사용하는 이유에 대해 잘 모릅니다. 예를 들어 경로가 말할 수있는 경로mojolicious에서 경로 이름의 목적은 무엇입니까?

$r->route('/cities/new') 
     ->via('get') 
     ->to(controller => 'cities', action => 'new_form') 
     ->name('cities_new_form'); 

하지만 이름 매개 변수의 용도는 무엇입니까? 나는 웹 프레임 워크에 익숙하지 않아 어쩌면 이것에 대해 사소한 대답을 할 수도있다.

답변

16

경로 이름을 지정하면 동적으로 URL을 생성하려는 경우 나중에 참조 할 수 있습니다. 귀하의 예를 들어, 당신은 나중에 코드에서이 작업을 수행 할 수 있습니다 :

my $link = $self->url_for('cities_new_form') 

$link 자동 /cities/new로 끝나는 URL로 채워 것입니다. 경로에 다이나믹 파트가있는 경우 멋진 정보를 얻을 수 있습니다. 예를 들어 :

$r->route('/cities/:cityname') 
    ->via('get') 
    ->to(controller => 'cities', action => 'new_form') 
    ->name('cities_new_form'); 

은 그럼 당신은 /cities/newyork로 끝날 것

my $link = $self->url_for('cities_new_form', cityname => 'newyork'); 

그리고 $link 같은 URL을 생성 할 수 있습니다.

이들은 간단한 예이지만 경로가 복잡해지면 상당히 복잡한 것을 구축 할 수 있습니다.

경로의 이름을 지정하지 않으면 기본 이름을 가져옵니다. 기본 이름은 그 안에 영숫자 문자를 연결 한 것입니다. 긴 경로는 지루해 지므로 이름을 사용하여 경로를 축약 할 수 있습니다.

Mojolicious 설명서의 Named Routes도 참조하십시오.