我有一个动态生成的表单,它给了我一个输入数组。然而,数组可能是空的,那么foreach将失败。
public function myfunction(Request $request) { if(isset($request)) { #do something } }
这显然不起作用,因为它是一个$request对象,并且总是被设置的。但是我不知道如何检查是否有任何输入。有什么想法吗?
xxls0lw81#
简单的清点一下就行了
if (count($request->all())) { // foreach here. }
koaltpgm2#
我总是通过在App\Http\Controllers目录下的Controller中添加一个函数来完成安装。
App\Http\Controllers
Controller
use Illuminate\Http\Request; public function hasInput(Request $request) { if($request->has('_token')) { return count($request->all()) > 1; } else { return count($request->all()) > 0; } }
如果其他输入变量在_token之外,则返回true,如果没有token并且包含其他变量,则返回true,这是不言自明的。
_token
token
h5qlskok3#
Request类有一个except()方法,它包含了除定义的key之外的所有内容,因此:
except()
if ( !empty( $request->except('_token') ) )
当请求数组中存在“某物”时执行代码。
x4shl7ld4#
如果您有所需表单输入的引用,那么Request::has()可能是一个不错的方法。Request::all()可能包含诸如XSRF令牌之类的内容,并会给您带来误报。
Request::has()
Request::all()
bvjveswy5#
一个简单的修改@Saravanan上面的代码。我同意他的意见,一个简单的检查输入的请求总数将做。
if(count($request->all()) >= 1) { //execute if the request has one or more input fields } else { //executes if the request is totally empty. }
5条答案
按热度按时间xxls0lw81#
简单的清点一下就行了
koaltpgm2#
我总是通过在
App\Http\Controllers
目录下的Controller
中添加一个函数来完成安装。如果其他输入变量在
_token
之外,则返回true,如果没有token
并且包含其他变量,则返回true,这是不言自明的。h5qlskok3#
Request类有一个
except()
方法,它包含了除定义的key之外的所有内容,因此:当请求数组中存在“某物”时执行代码。
x4shl7ld4#
如果您有所需表单输入的引用,那么
Request::has()
可能是一个不错的方法。Request::all()
可能包含诸如XSRF令牌之类的内容,并会给您带来误报。bvjveswy5#
一个简单的修改@Saravanan上面的代码。我同意他的意见,一个简单的检查输入的请求总数将做。