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

时间:2017-02-14 15:41:02

标签: php arrays laravel

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

    public function myfunction(Request $request)
    {
    if(isset($request))
     {
       #do something
     }

    }

这显然不起作用,因为它是$ request对象并且始终设置。我不知道如何检查是否有任何输入。

有什么想法吗?

4 个答案:

答案 0 :(得分:5)

进行简单的计数检查

comments

答案 1 :(得分:4)

我总是通过向Controller目录中的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;
    }
}

相当自解释,如果_token之外的其他输入变量则返回true,如果没有token则返回true并包含其他变量。

答案 2 :(得分:2)

如果您对表单输入的引用有所期待,那么Request::has()可能是一种很好的使用方法。 Request::all()可能包含XSRF令牌等内容,会给你误报。

答案 3 :(得分:1)

请求类有一个import Dependencies._ name := "sputnik-scraper" version := "0.1" scalaVersion := "2.12.4" conflictManager := ConflictManager.strict dependencyOverrides += "com.typesafe.akka" %% "akka-actor" % "2.5.8" lazy val root = (project in file(".")).settings( libraryDependencies ++= allDeps ) 方法,其中包含除定义的键/键之外的所有内容。所以:

import akka.actor.{ActorSystem, Props}
import io.bfil.scalescrape.actor.ScrapingActor

object Main extends App {

  val system = ActorSystem("HelloSystem")
  // default Actor constructor
  val helloActor = system.actorOf(Props[ExampleScraper], name = "helloactor")
  helloActor ! "hello"
  helloActor ! "buenos dias"
}


class ExampleScraper extends ScrapingActor {

  private val baseUrl = "https://www.sputnikmusic.com/"

  override def receive: Receive = {
    case _       => grabMainTitle(baseUrl)
  }

  private def grabMainTitle(url: String) =
    scrape {
          get(url) { response =>
            complete(doIt(response))
          }
    }

  private def doIt(response: Any): Unit = {
    println(response)
  }
}

在请求数组中有“something”时执行代码。