Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查Laravel中的请求数组是否为空_Php_Arrays_Laravel - Fatal编程技术网

Php 检查Laravel中的请求数组是否为空

Php 检查Laravel中的请求数组是否为空,php,arrays,laravel,Php,Arrays,Laravel,我有一个动态生成的表单,它给我一个输入数组。但是,数组可能为空,那么foreach将失败 public function myfunction(Request $request) { if(isset($request)) { #do something } } 这显然不起作用,因为它是一个$request对象,并且总是被设置的。然而,我不知道如何检查是否有任何输入 有什么想法吗?简单的计数检查就可以了 if (count($

我有一个动态生成的表单,它给我一个输入数组。但是,数组可能为空,那么foreach将失败

    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,这是一个很好的帮助。