如何在Laravel中指定此路线?

如何在Laravel中指定此路线?,laravel,laravel-5,Laravel,Laravel 5,我想要一个像这样的URL: /v1/vacations?country=US&year=2017&month=08 如何在Laravel 5.3中设置路由,以及在哪里可以放置控制器和逻辑以接受查询字符串?您的路由应该是这样的 Route::get('v1/vacations', 'VacationsController@index'); 然后去度假 public function index() { dd(request()->query()); $query=re

我想要一个像这样的URL:

/v1/vacations?country=US&year=2017&month=08

如何在Laravel 5.3中设置路由,以及在哪里可以放置控制器和逻辑以接受查询字符串?

您的路由应该是这样的

Route::get('v1/vacations', 'VacationsController@index');
然后去度假

public function index()
{

dd(request()->query());

$query=request()->query(); 

//search database using query

//return view with results
}
由于查询字符串不是URI的一部分,因此无法在路由中定义查询字符串。
要访问查询字符串,应使用请求对象
$request->query()
将返回所有查询参数的数组。您也可以使用它返回单个查询参数
$request->query('key')

您只需检查请求对象中的url参数,如下所示:

// The route declaration

Route::get('/v1/vacations', 'YourController@method');

// The controller

class YourController extends BaseController {

    public function method(Illuminate\Http\Request $request)
    {
        $country = $request->country;

        // do things with them...
    }
}

希望这对您有所帮助。

谢谢您的帮助。这为我指明了正确的方向。虽然我收到了一个请求错误,但我认为这可能是因为我声明对象的方式?