PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > 13.)PHPWeb开发框架~Laravel接收用户的输入的类

13.)PHPWeb开发框架~Laravel接收用户的输入的类

 一纸荒凉* Armani
 一纸荒凉* Armani 原创
2021年06月23日 10:34:21 1120浏览

Laravel接收用户的输入

接收用户输入的类:Illuminate\Support\Facades\Input

Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法。

Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’)

Input::all(): 获取所有的用户的输入Input::get(''): 获取单个的用户的输入Input::only([ ]): 获取指定几个用户的输入Input::except([ ]): 获取指定几个用户的输入以外的所有的参数Input::has('name'):判断某个输入的参数是否存在

上述方法即既可以获取get中的信息,也可以获取post中信息

常用方法

  • Input::get(‘参数的名字’[, ‘如果参数没有被传递使用该默认值’])

  • Input::all()

  • 获取所有的用户的输入

  • Input::get()

  • 获取单个的用户的输入

  • Input::only([])

  • 获取指定几个用户的输入

  • Input::except([ ])

  • 获取指定几个用户的输入以外的所有的参数

  • Input::has()

  • 判断某个输入的参数是否存在

注意事项

我们如果要使用这个facades,则必须引入,就像这样:

Use Illuminate\Support\Facades\Input

可这样太长了,所以我们可以定义别名,用别名的形式引入,配置别名app.php

位于:config/app.php

配置别名

打开app.php

找到aliases数组

找找有没有存在的Illuminate\Support\Facades\Input,若没有,则添加

在数组的末尾,添加自己的别名

‘Input’    =>    Illuminate\Support\Facades\Input::class,

然后控制器中我们只需要直接

use Input;

可以在config/app.php中定义长串的别名(在aliases数组中定义别名)

img

编写测试的由:

img

在laravel中友好输出函数:dd()

作用:dump+die,后续的代码不会执行。

img

提示:在laravel中不仅仅是Input门面可以获取用户的输入,Request门面也可以获取用户输入的,其语法和Input一样,也存在get、all、only等方法。

依赖注入 (这一点和tp的是一样的)

<?phpnamespace App\Http\Controllers\admin;use App\Http\Controllers\Controller;use Illuminate\Http\Request;class IndexController extends Controller{       public function index(Request $request){           // 访问;链接http://blog.com/admin?id=6&name=zhang&age=18           // 你可以使用 all 方法来获取 array 类型的全部输入数据           $input = $request->all();           print_r($input);           // 获取其中一个输入数据           $name = $request->input('name');           echo $name;           // 你可以在 input 方法第二个参数传入一个默认值           $name = $request->input('name', 'Sally');           // 你也可以使用无参数的 input 方法来获取全部输入的关联数组           $input = $request->input();       }}

门面类

<?phpnamespace App\Http\Controllers\admin;use App\Http\Controllers\Controller;use Request;class IndexController extends Controller{       public function index(){           print_r(Request::input());        var_dump(Request::has('age'));       }}

从查询字符串获取输入

input 方法可以从整个请求体中获取数据(包括查询字符串), 而 query 方法仅仅从查询字符串中获取输入值:

$input = $request->query('name');

如果请求中所需要的查询字符串字段不存在,第二个参数将会被返回:

$name = $request->query('name','Helen');

你也可以使用无参数的 query 方法来获取全部查询条件的关联数组:

$query = $request->query();

通过动态属性获取输入

你也可以通过 Illuminate\Http\Request 接口实例的动态属性访问用户的输入。例如你的一个表单中包含 name 字段,则可以通过下面这种方式获取:

$name = $request->name;

当使用动态属性时,Laravel 将会先从请求体中查找参数。如果该值不存在,则从路由参数中查找。

判断输入值是否存在

你可以使用 has 来判断当前请求中是否含有指定的值。如果请求中存在该值则 has 方法将会返回 true

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

当给定一个数组时,has 将会判断指定的值是否全部存在:

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

hasAny 方法将会在指定的值有一个存在的情况下返回 true

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

如果你想要判断一个值在请求中是否存在,并且不为空,可以使用 filled 方法:

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

如果你想要判断一个值在请求中是否缺失,可以使用 missing 方法:

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

获取请求类型,返回描述类型的字符串

$request_method = $request->method();

判断请求是否为某类型,返回布尔值

//判断请求是否为ajax,$is_ajax= $request->isMethod('ajax');//判断请求是否为get$is_get= $request->isMethod('get');//判断请求是否为post$is_post= $request->isMethod('post');
// $request -> isMethod('get') 依赖注入// Request::isMethod('get') 门面类public function index(Request $request){    //判断请求类型    if($request -> method() == 'POSt'){        //验证添加修改    }else{         //展示视图        return view('home/test/test13');    }    if ($request->isMethod('post')) {        //验证添加修改    } else if(Request::isMethod('get')){        //展示添加修改视图    }}
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议