php获取input的值_laravel的HTTP请求:获取输入信息

78634f34f1da16efd001125a616dc0d9.png

php中文网课程

每日17点准时技术干货分享

de6278590902bc944610d9223d0c5dff.png

09775656127be9cb12fe7543e7a79555.gif

本文为php中文网认证作者:“齐天大圣”投稿!

在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,三个方法能获得的值分别如下:

path():获取路径,path1/path2url():获取url地址,但不含?及后面字符串。http://example.com/path1/path2fullUrl():获取完整的路径。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']);

9ad38c76502d52cc9ed79e29efbb5754.png

ab41f4bd97a50a5dd1bfabb0ea02c7f6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值