laavel로 URL을 만드는 편리 함수(route()·action()를 사용할 때 매개 변수를 인코딩합니다

3436 단어 PHPLaravelblade
route()·action()은 모두 URL을 만들 때 매우 편리하다.
route('sample.index');  //こちらは、routes/web.phpでnameを指定する必要があります。
action('SampleController@index');
둘 다 같은 URL을 만들었어요.두 번째 매개 변수에서 매개 변수를 전달할 수 있다.
블레이드를 사용할 때는 구형 쓰기와 달리 읽을 수 있습니다.

구식

{{Form::open(['url' => 'http://sample/index?id='. $data['id']. '&name='. $data['name'])}}

route()·action() 사용 시


url 속성을 사용할 때
{{Form::open(['url' => route('sample.index', [$data])])}}
{{Form::open(['url' => action('SampleController@index', [$data])])}}
Laavel의 Blade에는 route 및 action 속성이 준비되어 있습니다(매개변수가 없을 때 사용됨).
(이 형식이라도 input hidden을 사용하면 파라미터를 제출할 수 있지만 개인적으로는 모든 URL 속성을 통일하면 쉽게 알 수 있다고 생각한다.)
{{Form::open(['route' => 'sample.index'])}}
{{Form::open(['action' => 'SampleController@index])}}

Form에 route 함수를 사용하고, 특정한 상황, 생각한 행동을 하지 않는다면


물론 이것은 이전의 일이지만 URL에 id를 삽입하고 id에/를 추가할 때 상상과 같은 행동을 하지 않습니다.예를 들다.
routes/web.php
Route::get('/test/{id}/index', 'TestController@index')->name('test.index');
모든 id의 데이터를 index 방법으로 처리하는 구상적인 노선입니다.
TestController.php
public function index(Request $request, $id)
    {
        dd($id);
    }
매개 변수로 id를 수신합니다.그럼, blade를 편집하겠습니다.
test.blade.php
{{Form::open(['url' => route('test.index', ['id' => '1']), 'method' => 'get'])}}
{{Form::submit('送信')}}
{{Form::close()}}
우선 id에 1을 넣고 버튼을 눌러 보세요.

생각한 바와 같이 1을 나타냈다.그럼, 제가 넣을게요.
test.blade.php
{{Form::open(['url' => route('test.index', ['id' => '/']), 'method' => 'get'])}}
{{Form::submit('送信')}}
{{Form::close()}}
가입/해보세요.404 오류.URL을 보자마자//, URL이 이상하게 변했다.

대응법


원래,/은 URL의 분할입니까?매개 변수를 전달할 때 URL의 중요한 역할을 담당한다.URL의 매개 변수로 사용하려면 인코딩해야 합니다.
routes/web.php
Route::get('/test/{id}/index', 'TestController@index')->name('test.index')->where('id', '(.*)');

완성했어.?매개 변수를 매개 변수로 사용하려면 인코딩한 후에 직접 사용할 수 있고, 없으면 urlencode ("63:"완성) 등 인코딩을 한 후에 매개 변수로 사용할 수 있습니다.

총결산


매개변수/또는?사용하지 않는 게 좋을 것 같아요.
참조 문서 - 슬래시 코드

좋은 웹페이지 즐겨찾기