Laravel $request->has('name') 不起作用

Fra*_*nRP 4 php laravel

我最近开始使用laravel来学习如何使用它。目前,我正在处理表单并查看 Laravel 提供的不同方法来促进我们的工作,但我不明白为什么以下代码不起作用:

\n\n
public function mensajes(Request $request) {\n    //return $request->all();\n\n    if ($request->has(\'nombre\')){\n        return "S\xc3\xad tiene nombre. Es ". $request->input(\'nombre\') ." y su correo es ". $request->input(\'email\');\n    } else {\n        return "No tiene nombre";\n    }\n\n\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试验证表单是否接收到输入“名称”,但无论是否接收到它,它都将其视为存在并且是否已填充,但是,当尝试执行此代码时(如果它正确执行)。

\n\n
public function mensajes(Request $request) {\n    //return $request->all();\n\n    if ($request->input(\'nombre\') != \'\'){\n        return "S\xc3\xad tiene nombre. Es ". $request->input(\'nombre\') ." y su correo es ". $request->input(\'email\');\n    } else {\n        return "No tiene nombre";\n    }\n\n\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我花了很多时间,也许太多时间看我的代码,却没有看到错误。

\n

smo*_*ill 8

仔细阅读Laravel文档,以正确使用HTTP 请求

确定输入值是否存在

您应该使用 has 方法来确定请求中是否存在值。如果请求中存在该值,则 has 方法返回 true:

if ($request->has('name')) {
    //
}
Run Code Online (Sandbox Code Playgroud)

如果您想确定请求中是否存在某个值并且该值不为空,您可以使用filled方法:

if ($request->filled('name')) {
    //
}
Run Code Online (Sandbox Code Playgroud)