我有一个动态生成的表单,它为我提供了一系列输入。但是数组可能是空的,那么foreach将会失败。
public function myfunction(Request $request)
{
if(isset($request))
{
#do something
}
}
这显然不起作用,因为它是$ request对象并且始终设置。我不知道如何检查是否有任何输入。
有什么想法吗?
答案 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”时执行代码。