> PHP 프레임워크 > Laravel > Laravel은 라우팅 매개변수와 쿼리 문자열의 매개변수를 어떻게 동시에 수신합니까?

Laravel은 라우팅 매개변수와 쿼리 문자열의 매개변수를 어떻게 동시에 수신합니까?

藏色散人
풀어 주다: 2021-03-05 09:03:06
앞으로
2696명이 탐색했습니다.

다음 튜토리얼 칼럼인 laravel에서는 Laravel이 라우팅 매개변수와 쿼리 문자열의 매개변수를 동시에 받는 방법을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Laravel은 경로 매개변수를 캡처합니다.

Laravel은 다음과 같이 컨트롤러 메서드의 경로에 정의된 매개변수 캡처를 허용합니다.

경로에 정의된 매개변수:
Route::get('post/{id}', 'PostController@content');Route::get('post/{id}', 'PostController@content');

控制器方法里捕捉路由参数:

class PostController extends Controller
{

    public function content($id)
    {
        //
    }
}
로그인 후 복사

Laravel同时捕获路由参数和查询字符串参数

那在控制器里怎么既能捕捉到路由里定义的参数又能接收到url查询字符串里的参数呢,比如请求链接是这样的http://example.com.cn/post/1?from=index
引用官网文档的解释

Dependency Injection & Route Parameters

If your controller method is also expecting input from a route parameter you should list your route parameters after your other dependencies.

就是说如果想要在控制器方法注入依赖时仍然能使用路由里的参数,你需要把路由里的参数列举在方法依赖的后面,比如:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController extends Controller
{

    public function content(Request $request, $id)
    {
        $from = $request->get('from')
    }
}
로그인 후 복사

Laravel捕获多个可选参数

此外laravel路由中我们还可以定义多个可选参数:

Route::get('/article/{id}/{source?}/{medium?}/{campaign?}', 'ArticleController@detail')

在控制器方法中可选参数需要定义成默认参数:

    public function detail(Request $request, $id, $source = '', $mediun = '', $campaign = '')
    {
        //
    }
로그인 후 복사

这样定义完后路由里URL里可以传递0~3个可选参数,但是必须按照顺序:即想传第二个可选参数那么第一个可选参数必须有。
URL示例:
http://example.com.cn/article/1/wx/h5?param1=val1&param2=val2
在这个例子中"wx"会传递给变量$source, "h5"会传递给变量$medium

컨트롤러 메소드에서 라우팅 매개변수 캡처:
rrreee
Laravel은 라우팅 매개변수와 쿼리 문자열을 동시에 캡처합니다. time 매개변수

그러면 컨트롤러는 어떻게 경로에 정의된 매개변수를 캡처하고 URL 쿼리 문자열에서 매개변수를 수신할 수 있습니까? 예를 들어 요청 링크는 http://example.com.cn/ post/와 같습니다. 1?from=index공식 웹사이트 문서에서 인용된 설명

종속성 주입 및 경로 매개변수🎜컨트롤러 메서드가 경로 매개변수의 입력도 예상하는 경우 다른 종속성 뒤에 경로 매개변수를 나열해야 합니다.🎜🎜 🎜즉, 컨트롤러 메서드에 종속성을 주입할 때 경로의 매개변수를 계속 사용하려면 메서드 종속성 뒤에 경로의 매개변수를 나열해야 합니다. 예: 🎜rrreee🎜Laravel은 여러 선택적 매개변수를 캡처합니다. 🎜🎜또한 laravel 라우팅에서 여러 선택적 매개변수를 정의할 수도 있습니다: 🎜🎜Route::get('/article/{id}/{source?}/{medium?}/{campaign?}', ' ArticleController@detail')🎜🎜컨트롤러 메소드에서 선택적 매개변수는 기본 매개변수로 정의되어야 합니다.🎜rrreee🎜이 정의 후에 0~3개의 선택적 매개변수가 경로의 URL에 전달될 수 있지만 즉, 두 번째 선택적 매개변수를 전달하려면 첫 번째 선택적 매개변수가 있어야 합니다. 🎜URL 예: 🎜http://example.com.cn/article/1/wx/h5?param1=val1&param2=val2🎜이 예에서는 "wx" 변수 $source에 전달되고, "h5"는 변수 $medium🎜🎜🎜🎜권장: 🎜최근 5개 Laravel 비디오 Tutorial🎜🎜🎜

위 내용은 Laravel은 라우팅 매개변수와 쿼리 문자열의 매개변수를 어떻게 동시에 수신합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿