라우팅
ㅋㅋ >
routing
기본 라우팅
빌딩 기본 경로에는 URI와 闭包
만 필요합니다. 경로를 정의하는 매우 간단하고 우아한 방법은 다음과 같습니다.
Route::get('foo', function () { return 'Hello World'; });
기본 라우팅 파일
모든 Laravel 경로는 routes
디렉터리의 라우팅 파일에 정의되어 있으며 이러한 파일은 프레임워크에 의해 자동으로 로드됩니다. routes/web.php
파일은 web
인터페이스에 대한 경로를 정의하는 데 사용됩니다. 여기의 경로는 세션 상태 및 CSRF 보호와 같은 기능을 제공하는 web
미들웨어 그룹에 할당됩니다. routes/api.php
에 정의된 경로는 상태 비저장이며 api
미들웨어 그룹에 할당됩니다. routes
目录中的路由文件中定义,这些文件都由框架自动加载。routes/web.php
文件用于定义 web
界面的路由。这里面的路由都会被分配给 web
中间件组,它提供了会话状态和 CSRF 保护等功能。定义在 routes/api.php
中的路由都是无状态的,并且被分配了 api
中间件组。
大多数的应用构建,都是以在 routes/web.php
文件定义路由开始的。可以通过在浏览器中输入定义的路由 URL 来访问 routes/web.php
中定义的路由。例如,你可以在浏览器中输入 http://your-app.dev/user
来访问以下路由
Route::get('/user', 'UserController@index');
routes/api.php
文件中定义的路由通过 RouteServiceProvider
被嵌套到一个路由组里面。在这个路由组中,会自动添加 URL 前缀 /api
到此文件中的每个路由,这样你就无需再手动添加了。你可以在 RouteServiceProvider
类中修改此前缀以及其他路由组选项。
可用的路由方法
路由器允许你注册能响应任何 HTTP 请求的路由:
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);
有的时候你可能需要注册一个可响应多个 HTTP 请求的路由,这时你可以使用 match
方法,也可以使用 any
方法注册一个实现响应所有 HTTP 请求的路由:
Route::match(['get', 'post'], '/', function () { // }); Route::any('foo', function () { // });
CSRF 保护
指向 web
路由文件中定义的 POST
、PUT
或 DELETE
路由的任何 HTML 表单都应该包含一个 CSRF 令牌字段,否则,这个请求将会被拒绝。可以在 CSRF 文档 中阅读有关 CSRF 更多的信息:
<form method="POST" action="/profile"> @csrf ... </form>
重定向路由
如果要定义重定向到另一个 URI 的路由,可以使用 Route::redirect
方法。这个方法可以快速的实现重定向,而不再需要去定义完整的路由或者控制器:
Route::redirect('/here', '/there');
Route::redirect
默认会返回状态码 302
。 你可以通过第三个参数自定义返回码:
Route::redirect('/here', '/there', 301);
你也可以使用 Route::permanentRedirect
方法来返回 301
routes/web.php
파일에 경로를 정의하는 것부터 시작됩니다. routes/web.php
에 정의된 경로는 정의된 경로 URL을 브라우저에 입력하여 접근할 수 있습니다. 예를 들어 브라우저에 http://your-app.dev/user
를 입력하면 routes/api.php
에 정의된 다음 경로 Route::permanentRedirect('/here', '/there');에 액세스할 수 있습니다. 파일 경로는
RouteServiceProvider
를 통해 라우팅 그룹에 중첩됩니다. 이 경로 그룹 내에서 URL 접두사 /api
는 이 파일의 각 경로에 자동으로 추가되므로 수동으로 추가할 필요가 없습니다. RouteServiceProvider
클래스에서 이 접두사와 기타 경로 그룹 옵션을 수정할 수 있습니다. Route::view('/welcome', 'welcome'); Route::view('/welcome', 'welcome', ['name' => 'Taylor']);🎜때로는 경로를 등록해야 할 수도 있습니다. HTTP 요청에 대한 여러 A 경로에 응답할 수 있는 경우
match
메서드를 사용하거나 any
메서드를 사용하여 응답하는 경로를 등록할 수 있습니다. 모든 HTTP 요청: 🎜Route::get('user/{id}', function ($id) { return 'User '.$id; });
POST
, PUT
또는 를 가리킵니다. web
경로 파일에 정의된 대로 >DELETE
로 라우팅되는 모든 HTML 양식에는 CSRF 토큰 필드가 포함되어야 합니다. 그렇지 않으면 요청이 거부됩니다. CSRF 문서에서 CSRF에 대해 자세히 알아볼 수 있습니다. 🎜Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // });🎜🎜🎜
경로 리디렉션
🎜다른 URI로 리디렉션되는 경로를 정의하려면Route::redirect
메서드를 사용할 수 있습니다. 이 메서드는 전체 경로나 컨트롤러를 정의하지 않고도 리디렉션을 빠르게 구현할 수 있습니다. 🎜Route::get('user/{name?}', function ($name = null) { return $name; }); Route::get('user/{name?}', function ($name = 'John') { return $name; });🎜
Route::redirect
는 기본적으로 상태 코드 302
를 반환합니다. 세 번째 매개변수를 통해 반환 코드를 사용자 정의할 수 있습니다: 🎜Route::get('user/{name}', function ($name) { // })->where('name', '[A-Za-z]+'); Route::get('user/{id}', function ($id) { // })->where('id', '[0-9]+'); Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);🎜
Route::permanentRedirect
메서드를 사용하여 301
상태 코드를 반환할 수도 있습니다: 🎜/** * 定义你的路由模型绑定, pattern 过滤器等。 * * @return void */ public function boot(){ Route::pattern('id', '[0-9]+'); parent::boot(); }🎜🎜🎜 🎜 🎜🎜
라우팅 보기
경로가 보기만 반환해야 하는 경우 Route::view
메서드를 사용할 수 있습니다. 이는 redirect
만큼 편리하며 전체 경로나 컨트롤러를 정의할 필요가 없습니다. view
메소드에는 세 개의 매개변수가 있으며, 그 중 첫 번째 매개변수는 필수이며 보기 이름을 포함하는 URI입니다. 두 번째 필수 매개변수는 렌더링해야 하는 뷰의 이름입니다. 세 번째 매개변수는 선택적 매개변수이며, 배열의 데이터는 뷰에 전달됩니다.Route::view
方法。它和 redirect
一样方便,不需要定义完整的路由或控制器。view
方法有三个参数,其中第一个是必填参数,是包含视图名称的 URI 。第二个也是必填参数,是需要渲染的视图名称。第三个参数是可选参数,可以传入一个数组,数组中的数据会被传递给视图:
Route::get('user/{id}', function ($id) { // 只有在 id 为数字时才执行。 });
路由参数
必填参数
当然,有时需要在路由中捕获一些 URL 片段。例如,从 URL 中捕获用户的 ID,可以通过定义路由参数来执行此操作:
Route::get('search/{search}', function ($search) { return $search; })->where('search', '.*');
也可以根据需要在路由中定义多个参数:
Route::get('user/profile', function () { // })->name('profile');
路由的参数通常都会被放在 {}
内,并且参数名只能为字母,同时路由参数不能包含 -
符号,如果需要可以用下划线 (_
) 代替。路由参数会按顺序依次被注入到路由回调或者控制器中,而不受回调或者控制器的参数名称的影响。
可选参数
有时,你可能需要指定一个路由参数,但你希望这个参数是可选的。你可以在参数后面加上 ?
标记来实现,但前提是要确保路由的相应变量有默认值
Route::get('user/profile', 'UserProfileController@show')->name('profile');
正则表达式约束
你可以使用路由实例上的 where
方法约束路由参数的格式。where
方法接受参数名称和定义参数应如何约束的正则表达式:
// 生成 URL... $url = route('profile'); // 生成重定向... return redirect()->route('profile');
全局约束
如果你希望某个具体的路由参数都遵循同一个正则表达式的约束,就使用 pattern
方法在 RouteServiceProvider
的 boot
方法中定义这些模式:
Route::get('user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 1]);
一旦定义好之后,便会自动应用这些规则到所有使用该参数名称的路由上:
/** * 处理一次请求。 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next){ if ($request->route()->named('profile')) { // } return $next($request); }
编码正斜杠字符
Laravel 路由组件允许除 /
之外的所有字符。你必须使用 where
条件正则表达式显式地允许 /
Route::middleware(['first', 'second'])->group(function () { Route::get('/', function () { // // 使用 first 和 second 中间件 }); Route::get('user/profile', function () { // // 使用 first 和 second 中间件 }); });
라우팅 매개변수
Route::namespace('Admin')->group(function () { // 在 "App\Http\Controllers\Admin" 命名空间下的控制器 });🎜 필요에 따라 경로에 여러 매개변수를 정의할 수도 있습니다. 🎜
Route::domain('{account}.myapp.com')->group(function () { Route::get('user/{id}', function ($account, $id) { // }); });🎜Route 매개변수는 일반적으로
{ }에 배치됩니다.
, 매개변수 이름은 문자만 사용할 수 있습니다. 동시에 라우팅 매개변수에는 -
기호를 포함할 수 없습니다. 필요한 경우 밑줄(_
)로 바꿀 수 있습니다. ). 경로 매개변수는 콜백이나 컨트롤러의 매개변수 이름에 관계없이 경로 콜백이나 컨트롤러에 순서대로 주입됩니다. 🎜🎜🎜🎜?
태그를 추가할 수 있지만 전제는 경로의 해당 변수에 기본값🎜Route::prefix('admin')->group(function () { Route::get('users', function () { // 匹配包含 "/admin/users" 的 URL }); });🎜🎜🎜
where
메소드를 사용하여 라우트 매개변수의 형식을 제한할 수 있습니다 . where
메소드는 매개변수 이름과 매개변수를 제한하는 방법을 정의하는 정규 표현식을 허용합니다. 🎜Route::name('admin.')->group(function () { Route::get('users', function () { // 指定路由名为 "admin.users"... })->name('users');});
전역 제약
🎜특정 라우팅 매개변수가 동일한 정규 표현식의 제약 조건을 따르도록 하려면RouteServiceProvider<의 boot
메서드에서 pattern
메서드를 사용하세요. /code> 다음 패턴을 정의하세요: 🎜Route::get('api/users/{user}', function (App\User $user) {
return $user->email;
});
🎜정의되면 이 규칙은 이 매개변수 이름을 사용하는 모든 경로에 자동으로 적용됩니다: 🎜/**
* 获取该模型的路由的自定义键名。
*
* @return string
*/
public function getRouteKeyName(){
return 'slug';
}
🎜 인코딩 슬래시 문자
🎜Laravel 라우팅 구성 요소는 /
를 제외한 모든 문자를 허용합니다. where
조건부 정규식을 사용하여 /
가 자리 표시자의 일부가 되도록 명시적으로 허용해야 합니다. 🎜public function boot(){
parent::boot();
Route::model('user', App\User::class);
}
🎜 참고: 인코딩된 슬래시 문자는 마지막 경로 세그먼트에서만 지원됩니다. 🎜🎜🎜🎜🎜🎜🎜경로 이름 지정
경로 이름 지정을 사용하면 지정된 경로에 대한 URL 또는 리디렉션을 쉽게 생성할 수 있습니다. 경로 정의에서 name
메서드를 연결하여 경로 이름을 지정할 수 있습니다: name
方法可以指定路由名称:
Route::get('profile/{user}', function (App\User $user) {
//
});
你还可以指定控制器行为的路由名称:
/**
* 启动应用服务。
*
* @return void
*/
public function boot(){
parent::boot();
Route::bind('user', function ($value) {
return App\User::where('name', $value)->first() ?? abort(404);
});
}
生成指定路由的 URL
为路由指定了名称后,就可以使用全局辅助函数 route
来生成链接或者重定向到该路由:
/**
* 检索绑定值的模型。
*
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveRouteBinding($value){
return $this->where('name', $value)->first() ?? abort(404);
}
如果是有定义参数的命名路由,可以把参数作为 route
函数的第二个参数传入,指定的参数将会自动插入到 URL 中对应的位置:
Route::fallback(function () {
//
});
检查当前路由
如果你想判断当前请求是否指向了某个路由,你可以调用路由实例上的 named
方法。例如,你可以在路由中间件中检查当前路由名称:
Route::middleware('auth:api', 'throttle:60,1')->group(function () {
Route::get('/user', function () {
//
});
});
路由组
路由组允许你在大量路由之间共享路由属性,例如中间件或命名空间,而不需要为每个路由单独定义这些属性。共享属性应该以数组的形式传入 Route::group
方法的第一个参数中。
中间件
要给路由组中所有的路由分配中间件,可以在 group 之前调用 middleware
方法,中间件会依照它们在数组中列出的顺序来运行:
Route::middleware('auth:api', 'throttle:rate_limit,1')->group(function () {
Route::get('/user', function () {
//
});
});
命名空间
另一个常见用例是使用 namespace
方法将相同的 PHP 命名空间分配给路由组的中所有的控制器:
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
请记住,默认情况下,RouteServiceProvider
会在命名空间组中引入你的路由文件,让你不用指定完整的 AppHttpControllers
命名空间前缀就能注册控制器路由。因此,你只需要指定命名空间 AppHttpControllers
之后的部分。
子域名路由
路由组也可以用来处理子域名。子域名可以像路由 URI 一样被分配路由参数,允许你获取一部分子域名作为参数给路由或控制器使用。可以在 group 之前调用 domain
方法来指定子域名:
<form action="/foo/bar" method="POST">
@method('PUT')
@csrf
</form>
路由前缀
可以用 prefix
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
또한 컨트롤러 작업의 경로 이름을 지정할 수도 있습니다: rrreee
지정된 경로의 URL 생성
경로의 이름을 지정한 후 전역 도우미 기능인 route
를 사용하여 링크를 생성하거나 리디렉션할 수 있습니다. 경로에: rrreee 정의된 매개변수가 있는 명명된 경로인 경우 해당 매개변수를 route
함수의 두 번째 매개변수로 전달하면 지정된 매개변수가 해당 위치에 자동으로 삽입됩니다. URL에서: rrreee🎜현재 경로 확인
🎜현재 요청이 특정 경로를 가리키는지 확인하려면 경로 인스턴스 code> 메소드에서 named
를 호출할 수 있습니다. 예를 들어 라우팅 미들웨어에서 현재 경로 이름을 확인할 수 있습니다: 🎜rrreee🎜🎜🎜🎜🎜route-groups 🎜🎜 경로 그룹을 사용하면 각 경로에 대해 개별적으로 이러한 속성을 정의할 필요 없이 수많은 경로에서 미들웨어 또는 네임스페이스와 같은 경로 속성을 공유할 수 있습니다. 공유 속성은 배열 형식으로 Route::group
메서드의 첫 번째 매개변수에 전달되어야 합니다. 🎜🎜🎜🎜🎜미들웨어
🎜라우팅 그룹의 모든 경로를 제공하려면 미들웨어를 할당하려면 그룹 전에 middleware
메소드를 호출할 수 있습니다. 미들웨어는 배열에 나열된 순서대로 실행됩니다: 🎜rrreee🎜 🎜 🎜🎜네임스페이스
🎜또 다른 일반적인 사용 사례는 namespace
메서드를 사용하여 동일한 PHP 네임스페이스를 할당하는 것입니다. 경로 그룹의 모든 컨트롤러: 🎜rrreee🎜 기본적으로 RouteServiceProvider
는 네임스페이스 그룹의 경로 파일을 가져오므로 전체 AppHttpControllers
를 지정하지 않아도 됩니다. 네임스페이스 접두사는 컨트롤러 경로를 등록하는 데 사용할 수 있습니다. 따라서 AppHttpControllers
네임스페이스 뒤의 부분만 지정하면 됩니다. 🎜🎜🎜🎜🎜하위 도메인 라우팅
🎜라우팅 그룹도 가능 하위 도메인을 처리하는 데 사용됩니다. 하위 도메인에는 경로 URI와 마찬가지로 경로 매개변수를 할당할 수 있으므로 하위 도메인의 일부를 경로나 컨트롤러에 대한 매개변수로 가져올 수 있습니다. 그룹 앞에 domain
메소드를 호출하여 하위 도메인 이름을 지정할 수 있습니다: 🎜rrreee🎜🎜🎜🎜라우팅 접두사
🎜prefix
메서드를 사용하여 라우팅 그룹에 제공된 URL에 접두사를 추가할 수 있습니다. 예를 들어 그룹에 있는 모든 경로의 URI 앞에 admin: 🎜rrreee🎜🎜🎜🎜🎜🎜을 붙일 수 있습니다.경로 이름 접두사
이름 방법을 사용하여 경로 그룹의 각 경로 이름에 지정된 문자열을 추가할 수 있습니다. 예를 들어 모든 그룹 경로의 이름 앞에 "admin"을 붙일 수 있습니다. 주어진 문자열은 지정된 경로 이름 접두사와 정확히 동일하므로 접두사에 후행 .
문자를 제공해야 합니다: .
字符:
rrreee路由模型绑定
当向路由或控制器行为注入模型 ID 时,就需要查询这个 ID 对应的模型。Laravel 为路由模型绑定提供了一个直接自动将模型实例注入到路由中的方法。例如,你可以注入与给定 ID 匹配的整个 User
模型实例,而不是注入用户的 ID。
隐式绑定
Laravel 会自动解析定义在路由或控制器行为中与类型提示的变量名匹配的路由段名称的 Eloquent 模型。例如:
rrreee在这个例子中,由于 $user
变量被类型提示为 Eloquent 模型 AppUser
,变量名称又与 URI 中的 {user}
匹配,因此,Laravel 会自动注入与请求 URI 中传入的 ID 匹配的用户模型实例。如果在数据库中找不到对应的模型实例,将会自动生成 404 异常。
自定义键名
如果你想要模型绑定在检索给定的模型类时使用除 id
之外的数据库字段,你可以在 Eloquent 模型上重写 getRouteKeyName
方法:
rrreee显式绑定
要注册显式绑定,使用路由器的 model
方法来为给定参数指定类。在 RouteServiceProvider
类中的 boot
方法内定义这些显式模型绑定:
rrreee接着,定义一个包含 {user}
参数的路由:
rrreee因为我们已经将所有 {user}
参数绑定至 AppUser
模型,所以 User
实例将被注入该路由。例如,profile/1
的请求会注入数据库中 ID 为 1 的 User
rrreee
< /a>경로 모델 바인딩
모델 ID를 경로 또는 컨트롤러 동작에 삽입할 때 다음을 쿼리해야 합니다. ID 해당 모델. Laravel은 모델 인스턴스를 경로에 직접 자동으로 주입하기 위한 경로 모델 바인딩 방법을 제공합니다. 예를 들어, 사용자 ID를 주입하는 대신 주어진 ID와 일치하는 전체 User
모델 인스턴스를 주입할 수 있습니다. 🎜🎜🎜🎜Implicit 바인딩🎜🎜Laravel은 자동으로 경로나 컨트롤러의 정의를 해결합니다 Eloquent 유형 힌트 변수 이름과 일치하는 동작의 경로 세그먼트 이름에 대한 모델입니다. 예: 🎜rrreee🎜이 예에서 $user
변수는 Eloquent 모델 AppUser
로 유형 힌트되어 있으므로 변수 이름은 와 동일합니다. URI의 {user}<. /code>가 일치하므로 Laravel은 요청 URI에 전달된 ID와 일치하는 사용자 모델 인스턴스를 자동으로 주입합니다. 해당 모델 인스턴스를 데이터베이스에서 찾을 수 없으면 404 예외가 자동으로 생성됩니다. 🎜🎜사용자 정의 키 이름
🎜특정 모델 클래스를 검색할 때 id 이외의 다른 모델 바인딩을 사용하려는 경우 데이터베이스 필드의 경우
외에 Eloquent 모델의 getRouteKeyName
메소드를 재정의할 수 있습니다: 🎜rrreee🎜🎜🎜🎜명시적 바인딩🎜🎜명시적 바인딩을 등록하려면 라우터의 model
메서드를 사용하여 지정된 매개변수에 대한 클래스를 지정하세요. RouteServiceProvider
클래스의 boot
메서드 내에서 이러한 명시적 모델 바인딩을 정의합니다. 🎜rrreee🎜다음으로 {user}
매개변수를 정의합니다. Route:🎜rrreee 🎜모든 {user}
매개변수를 AppUser
모델에 바인딩했기 때문에 User
인스턴스가 이 경로에 주입됩니다. 예를 들어, profile/1
에 대한 요청은 데이터베이스에 ID 1의 User
인스턴스를 삽입합니다. 🎜🎜 데이터베이스에서 일치하는 모델 인스턴스를 찾을 수 없으면 404 예외가 자동으로 발생합니다. 🎜🎜🎜커스텀 로직 파싱
커스텀 파싱 로직을 사용하려면 Route::bind
메소드를 사용하세요. bind
메소드에 전달된 클로저
는 URI의 중괄호에 해당하는 값을 받아들이고 경로에 삽입하려는 클래스의 인스턴스를 반환합니다: Route::bind
方法。传递到 bind
方法的 闭包
会接受 URI 中大括号对应的值,并且返回你想要在该路由中注入的类的实例:
rrreee或者,您可以重写 Eloquent 模型上的 resolveRouteBinding
方法。 此方法会接受 URI 中大括号对应的值,并且返回你想要在该路由中注入的类的实例:
rrreee回退路由
使用 Route::fallback
方法, 你可以定义在没有其他路由匹配传入请求时执行的路由。通常,未处理的请求会通过应用程序的异常处理程序自动呈现 “404” 页面。 但是,因为你可以在 routes/web.php
文件中定义 fallback
路由,web
中间件的所有中间件都将应用到路由中。 当然,你也可以根据需要向这条路由中添加额外的中间件:
rrreee{note} 回退路由应始终是你应用程序注册的最后一个路由。
访问控制
Laravel 包含了一个 middleware 用于控制应用程序对路由的访问。 如果想要使用, 请将 throttle
中间件分配给一个路由或者一个路由组。throttle
中间件会接收两个参数,这两个参数决定了在给定的分钟数内可以进行的最大请求数。例如,让我们指定一个经过身份验证并且用户每分钟访问频率不超过 60 次的路由组:
rrreee动态访问控制
你可以根据已验证的 User
模型的属性,指定动态请求的最大值。例如,如果你的 User
模型包含 rate_limit
属性,则可以将属性名称传递给 throttle
中间件,以便它用于计算最大请求数:
rrreee表单方法伪造
HTML 表单不支持 PUT
、PATCH
或 DELETE
行为。所以当你要从 HTML 表单中调用定义了 PUT
、 PATCH
或 DELETE
行为的路由时,你将需要在表单中增加一个隐藏的 _method
输入标签。使用 _method
字段的值作为 HTTP 的请求方法:
rrreee你也可以使用 @method
模板指令生成 _method
rrreee
또는 Eloquent 모델의 resolveRouteBinding
메소드를 재정의할 수 있습니다. 이 메소드는 URI의 중괄호에 해당하는 값을 받아들이고 경로에 삽입하려는 클래스의 인스턴스를 반환합니다: 대체 경로
Route::fallback
메서드를 사용하면 수신 경로와 일치하는 다른 경로가 없을 때 실행되는 경로를 정의할 수 있습니다. 요구. 일반적으로 처리되지 않은 요청은 애플리케이션의 예외 처리기를 통해 자동으로 "404" 페이지를 렌더링합니다. 그러나 routes/web.php
파일에서 fallback
경로를 정의할 수 있으므로 web
미들웨어의 모든 미들웨어가 해당 경로에 적용됩니다. 가운데. 물론 필요한 경우 이 경로에 추가 미들웨어를 추가할 수 있습니다. 🎜rrreee🎜{note} 대체 경로는 항상 애플리케이션에 등록된 마지막 경로여야 합니다. 🎜
🎜🎜🎜🎜액세스 제어
🎜Laravel에는 중고용 미들웨어가 포함되어 있습니다. 경로에 대한 애플리케이션 액세스를 제어합니다. 이를 사용하려면 경로 또는 경로 그룹에 throttle
미들웨어를 할당하세요. throttle
미들웨어는 주어진 시간(분) 동안 수행할 수 있는 최대 요청 수를 결정하는 두 개의 매개변수를 받습니다. 예를 들어, 인증되었으며 사용자가 분당 60회 이하로 액세스하도록 라우팅 그룹을 지정해 보겠습니다. 🎜rrreee🎜🎜동적 액세스 제어🎜🎜따라갈 수 있습니다. 동적 요청의 최대값을 지정하는 검증된 User
모델의 속성입니다. 예를 들어, User
모델에 rate_limit
속성이 포함된 경우 해당 속성 이름을 throttle
미들웨어에 전달하여 다음 작업에 사용할 수 있습니다. 최대 요청 수 계산: 🎜rrreee🎜🎜🎜🎜양식 메서드 스푸핑
🎜 HTML 양식은 PUT
, PATCH
또는 DELETE
동작을 지원하지 않습니다. 따라서 HTML 양식에서 PUT
, PATCH
또는 DELETE
동작을 정의하는 경로를 호출하려면 Hidden을 추가해야 합니다. _method
입력 태그입니다. _method
필드 값을 HTTP 요청 메서드로 사용하세요. 🎜rrreee🎜 @method
템플릿 지시문을 사용하여 _method
입력을 생성할 수도 있습니다. : 🎜rrreee🎜 🎜🎜🎜🎜🎜현재 경로에 액세스
Route Facade의 current
、 currentRouteName
和 currentRouteAction
메서드를 사용하여 들어오는 요청을 처리하는 경로에 대한 정보에 액세스할 수 있습니다:
rrreee접근 가능한 모든 메서드를 알고 싶다면 Route Facade에 대한 API 문서를 확인하세요. 및 Route 인스턴스 기본 클래스.