我使用Laravel框架,我有基于不同条件参数的情况添加路线。
目前,我正在使用此代码。
Route::get('/{report?}/{type?}', [
'uses' => 'SomeController@getReport'
])->where(['report' => 'overview', 'type' => 'type1']);
www.example.com/overview/type1 // Working
www.example.com?report=overview&type=type1 // Not working (not verifying the where conditions).
我有另一个解决方案。这是更好的方法吗?
if (Input::get('report') == 'overview' && Input::get('type') == 'type1') {
Route::get('/', ['uses' => 'SomeController@getReport']);
}
试试这个:
if (request()->get('report') == 'overview'
&& request()->get('type') == 'type1') {
Route::get('/', [
'uses' => 'SomeController@getReport'
);
}
试试这个。希望它能起作用。
Route::get('/{report?}/{type?}', function()
{
if (Input::get('report') == 'overview'
&& Input::get('type') == 'type1') {
// Run controller and method
$app = app();
$controller = $app->make('SomeController');
return $controller->callAction('getReport', $parameters = array());
}
});