Arn*_*man 7 php laravel laravel-routing laravel-5.1
我已宣布这条路线:
Route::get('category/{id}{query}{sortOrder}',['as'=>'sorting','uses'=>'CategoryController@searchByField'])->where(['id'=>'[0-9]+','query'=>'price|recent','sortOrder'=>'asc|desc']);
Run Code Online (Sandbox Code Playgroud)
我想在url中得到这个:http:// category/1?field = recent&order = desc 如何实现这个目标?
Oğu*_*tel 17
如果您在url中有其他参数,则可以使用;
request()->fullUrlWithQuery(["sort"=>"desc"])
Run Code Online (Sandbox Code Playgroud)
不应在路由中定义查询字符串,因为查询字符串不是 URI 的一部分。
要访问查询字符串,您应该使用请求对象。$request->query()将返回所有查询参数的数组。您也可以使用它来返回单个查询参数$request->query('key')
class MyController extends Controller
{
public function getAction(\Illuminate\Http\Request $request)
{
dd($request->query());
}
}
Run Code Online (Sandbox Code Playgroud)
你的路线将是这样的
Route::get('/category/{id}');
Run Code Online (Sandbox Code Playgroud)
编辑评论:
要生成 URL,您仍然可以使用 Laravel 中的 URL 生成器,只需提供您希望使用 URL 生成的查询参数数组即可。
url('route', ['query' => 'recent', 'order' => 'desc']);
Run Code Online (Sandbox Code Playgroud)