我有这样的路线
Route::get('/car-{travelType}/{cityFrom}-{cityTo}-{id}.html','ArticleController@getDetail')->name('articles_detail');
在我的控制器中,我捕获了这样的参数
public function getDetail($cityFrom, $cityTo, $id, Request $request)
{
$article_detail = DB::select("CALL article_detail(?,?,?)", [$cityFrom,$cityTo,$id]);
return $article_detail;
}
这将正常工作,但存在一个问题,即此查询由于路由发送原始参数而获得 sqlinjection。
在后请求中,我可以像$request->input('some_fields')
和 laravel 一样捕获请求,并在屏幕后面保护我,但不能在获取请求中。
如何解决该问题?
您也可以在Get request上使用$request->get('somefield')
www.site.com/page?somefield=value
在这种情况下,当你采用$request->get('somefield')时,它应该给你"价值"
所以在你的情况下:
www.site.com/page?travel-type=foo&city-from=berlin&city-to=munich&id=1
$request->get('travel-type'); // foo
$request->get('city-from'); // berlin
$request->get('city-to'); // munich
$request->get('id'); // 1