laravel5中route路由的正則表達式過濾

您能夠使用where路由實例上的方法約束路由參數的格式。該where方法接受參數的名稱和定義參數應如何約束的正則表達式:php

如下是官方Laravel文檔中的示例: laravel

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 :: get('projects / {project_id}','ProjectController @ show'); 正則表達式

可是若是你想讓project_id嚴格地是一個數字呢?express

能夠指定某些變量名稱始終遵循特定模式。例如,您但願全部路由中的project_id都是整數。bash

而後在app / Providers / RouteServiceProvider.php中執行此操做app

public function boot()
{
    Route::pattern('project_id', '[0-9]+');
    parent::boot();
}複製代碼

定義模式後,它將使用該參數名稱自動應用於全部路由ide

相關文章
相關標籤/搜索