사용자가 시작 위치를 입력 할 수있는 양식이 있습니다. 제출할 때이 위치의 중심에있는지도로 이동합니다. 그는이 단계를 건너 뛰고 직접지도로 이동할 수도 있습니다. (전체 배경 스토리를 건너 뛸 수있는 단순화 된 버전입니다.)Laravel은 값 대신 매개 변수 이름을 표시합니다 (경로에서 선택적 매개 변수를 사용하는 경우)
이 코드는 사용자가 양식을 사용할 때 양식에서 시작 위치를 가져 와서지도로 리디렉션 할 때 첫 번째 코드입니다. 계획 변수는 항상이지도 경로입니다)
Route::post('InitiateUserTrip', ['as' => 'InitiateUserTrip', function(WelcomeFormRequest $request)
{
if (Input::get('planning') == 'own') {
return Redirect::route('Map',array('startLocation', Input::get('startLocation')));
} else {
return view('welcome');
}
} ]);
이 경우의 목적으로 '자신'이 될 것이라고 startLocation는 위에서 설명한대로 선택 사항입니다. (API 키는 내 개인 API 키가 될 것입니다.) 여기서 볼 수있는 것은 디버그 막대가 매개 변수의 값 대신 'startLocation'을 표시하고 있다는 것입니다. (값 대신 이름)
나는 무엇이 계속되고 있는지보기 위해 URL을 가지고 놀기 시작했다. startLocation이는 다음 URL을 초래할 것처럼 사용자가 '마이애미'를 입력 한 가정 :
http://laravel.dev/Map/startLocation?Miami => 'startLocation'
나는 URL에게 자신을 수정
에 http://laravel.dev/Map/Miami => Debugbar 보여줄 것 '마이애미을 보여줄 것 Debugbar '잘못된 내용을 표시하는 것은 디버그 바가 아닙니다. 이 변수를 기반으로 지오 코딩을 시도하지만 내용이 'startLocation'으로 간주되기 때문에 실패합니다.
매개 변수가없는 매개 변수 하나와 매개 변수가없는 매개 변수 두 개의 경로를 만들어이 문제를 해결할 수 있습니다.
왜 "?" 경로에서, 이것을 제거하십시오 –
@ImtiazPabel'? '는 route 매개 변수가 선택적이며 완전히 유효 함을 의미합니다. – Jonathon
라우트 매개 변수는'GET' 매개 변수 (URL의'? '다음에 오는 쿼리 문자열)와 같지 않습니다. '/ Map/Miami'는'$ startLocation'을 위해''Miami ''를 올바르게 리턴 할 것이고'/ Map/startloaction? Miami'은'$ startLocation'을 위해''startLocation "'을 정확하게 나타낼 것입니다. 실제로 URL을 선택해야 할 때 URL과'GET' 매개 변수를 모두 사용하려고합니다. –