• 技术文章 >php框架 >Laravel

    laravel的HTTP请求:获取输入信息

    齐天大圣齐天大圣2020-12-15 09:27:27原创1248

    在laravel框架获取输入是非常的方便,它提供了多种方法来获取输入。

    在laravel中使用Illuminate\Http\Request实例来接受请求,如下

    use Illuminate\Http\Request;
    
    $request = new Request();
    echo $request->method();

    可以用简便的自动注入方法,使用如下:

    <?php
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Route;
    
    class IndexController extends Controller
    {
        public function index (Request $request)
        {
            dump($request->method());    
        }
    }

    获取请求路径和请求方法

    获取请求方法非常的简单,使用method方法即可。另外,还有一个判断当前请求动作的方法isMethod

    if ($request->isMethod('post')) {
        // ...
    }

    获取请求路径的方法也有几个,它们之间是有区别的,比如对一个URL地址:http://example.com/path1/path2?a=23&b=3,三个方法能获得的值分别如下:

    获取输入

    下面从几个方面看获取输入,如获取全部输入或获取单个输入获取部分输入等。

    获取全部输入

    获取全部输入有两种方法可以得到,all()以及input()。input中不加任何参数表示接受全部的意思:

    $request->all();
    // or
    $request->input();

    获取一个输入

    获取一个输入,也是使用input方法,但是要给第一个参数,该参数表示需要获取的字段的值。

    $request->input('name');

    input还可以接受第二个参数,该参数是当没有获取到字段值时设置的默认值。如:

    $request->input('name', 'php.cn');

    除此之外,input还能获取数值及json数据,获取时使用操作符“.”

    $request->input('users.name');
    $request->input('users.0.name');
    $request->input('users.*.name');

    除了input方法外,还有一个query方法也可以获取输入,但是它们的区别是,input能从表单和查询字符串获取输入,而query方法只能从查询字符串获取输入。query方法和input方法的用法是一样的,这里就不做演示了。

    还有一种简单获取输入方法,叫做动态获取输入,可以直接通过属性来获取输入。比如表单中含有name字段,那么就可以通过以下方法获取

    $request->name;

    但要注意的是,Laravel 将会先从请求体中查找参数。如果该值不存在,则从路由参数中查找。

    获取一个bool值

    laravel提供一个获取字段值并主动将它转换为bool类型值的函数,该方法是boolean。

    if ($request->boolean('name')) {
        // ...
    }

    判断值是否存在

    判断一个输入值是否存在有几个方法,用法稍微有些区别。hasfilled都可以用来判断输入值是否存在,但区别在于:has只要该字段值存在就返回真。而filled不仅存在而且还要不为空的情况才返回真。

    has还可以用来判断多个字段,如果多个字段值都存在就返回真,否则返回假

    if ($request->has(['name', 'email'])) {}

    而hasAny则只有有一个字段值存在就返回真

    if ($request->hasAny(['name', 'email'])) {}

    获取部分输入

    laravel还能够获取部分输入,使用only或except方法,它们的用法和功能完全一样。返回的是一个关联数组:

    $request->only('name', 'email');
    // or
    $request->only(['name', 'email']);

    以上就是laravel的HTTP请求:获取输入信息的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:laravel
    上一篇:PHP+Laravel的简单应用教程【ajax的使用】 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • laravel第一讲:安装及运行laravel• laravel第二讲:路由的定义及与控制器绑定• laravel第三讲:路由参数全局约束、路由重定向及路由视图绑定• laravel第四讲:路由命名及路由分组
    1/1

    PHP中文网