Php 检查Laravel中的请求数组是否为空
我有一个动态生成的表单,它给我一个输入数组。但是,数组可能为空,那么foreach将失败Php 检查Laravel中的请求数组是否为空,php,arrays,laravel,Php,Arrays,Laravel,我有一个动态生成的表单,它给我一个输入数组。但是,数组可能为空,那么foreach将失败 public function myfunction(Request $request) { if(isset($request)) { #do something } } 这显然不起作用,因为它是一个$request对象,并且总是被设置的。然而,我不知道如何检查是否有任何输入 有什么想法吗?简单的计数检查就可以了 if (count($
public function myfunction(Request $request)
{
if(isset($request))
{
#do something
}
}
这显然不起作用,因为它是一个$request对象,并且总是被设置的。然而,我不知道如何检查是否有任何输入
有什么想法吗?简单的计数检查就可以了
if (count($request->all())) {
// foreach here.
}
如果您有所需表单输入的引用,那么
Request::has()
可能是一个很好的使用方法Request::all()
可能包含诸如XSRF令牌之类的内容,并会给您带来误报。我总是通过向App\Http\Controllers
目录中的控制器添加一个函数来完成安装
use Illuminate\Http\Request;
public function hasInput(Request $request)
{
if($request->has('_token')) {
return count($request->all()) > 1;
} else {
return count($request->all()) > 0;
}
}
如果\u token
之外的其他输入变量,则返回true;如果没有token
并包含其他变量,则返回true。请求类有一个except()
方法,该方法包括除定义的键外的所有内容。因此:
if ( !empty( $request->except('_token') ) )
当请求数组中有“something”时执行代码。您可以通过去掉那些内部的if
语句,而使用返回计数($request->all())>0来简化此函数代码>或返回计数($request->all())>1代码>^完全正确。不需要其他的。第一个if语句将返回true或false。谢谢mbozwood,这是一个很好的帮助。