我正在使用laravel 5.2。我有个问题。如果我发送像
这样的请求http://localhost/test?sports[]=soccer&sports[]=basketball
我可以将体育作为一个包含2个元素的数组。
但是,如果我发送请求:
http://localhost/test?sports[]
我通过$sports = $request->input('sports')
得到它,我认为它是一个空数组,但实际上并非如此。我var_dump()
:
array(1) { [0]=> string(0) "" }
所以有人可以告诉我如何确定请求输入数组数据是空的?
补充:
我的routes.php
:
Route::get('/test',function(Illuminate\Http\Request $request){
var_dump($request->has('sports'));
});
我访问http://localhost/test?sports[]
输出为真。
答案 0 :(得分:1)
我认为您不需要任何内置功能,但您可以创建Request
宏:
Request::macro('someCoolName', function ($key) {
return is_array($this->input($key)) && (count($this->input($key)) == 1) && empty($this->input($key)[0]) ? [] : $this->input($key);
});
注意 - 使用boot()
的{{1}}方法添加它。
然后您可以将其用作:
App\Providers\AppServiceProvider
如果您的网址类似于$request->someCoolName('sports'); // returns []
[]