监控系统实践第15天:5天上手Laravel8.5之HTTP请求篇(4/5)

Posted 家铭didphp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控系统实践第15天:5天上手Laravel8.5之HTTP请求篇(4/5)相关的知识,希望对你有一定的参考价值。

前言

HTTP请求一般是指接收用户传递过来的参数,主要通过路由控制器接收。


Laravel基础功能:HTTP请求(Request)

简介

控制器路由对应的方法如果要接收HTTP请求发送过来的参数,需要用到Request类,接收HTTP请求发送过来的参数,路由中不需要额外添加参数。


如何运用?

请求主要用到Laravel中的一个Request类,这个类用法比较简单。

下面列举几个代码段。

1. 接收请求,无额外参数

继续以昨天的控制器ArtController为例。

ArtController代码:

<?php
namespace App\\Http\\Controllers;
use Illuminate\\Http\\Request;

class ArtController extends Controller
{
    public function show(Request $request) {
      echo 'show:' . $request->input('name');
    }
}

路由代码:

Route::get('show', [\\App\\Http\\Controllers\\ArtController::class, 'show']);

访问结果:
在这里插入图片描述


2. 接收请求,存在额外参数

继续以昨天的控制器ArtController为例。

ArtController代码:

<?php
namespace App\\Http\\Controllers;
use Illuminate\\Http\\Request;

class ArtController extends Controller
{
    public function show(Request $request, $id) {
      echo 'show:' . $request->input('name') . " 你的ID是:{$id}";
    }
}

路由代码:

Route::get('show/{id}', [\\App\\Http\\Controllers\\ArtController::class, 'show']);

访问结果:
在这里插入图片描述

3. 路由中接收请求

路由控制器接收请求方法一直,都是使用Request类:

use Illuminate\\Http\\Request;
Route::get('/', function (Request $request) {
    //
});

4. 请求类Request的其它方法

其它方法部分可以牢记,部分选择性的记忆吧。


以下罗列几个常用的方法:

跳转到指定URI

redirect('c/adsasd');

获取所有输入

$request->all();

从所有的 Request 里面取出指定 key 的值

$request->get('name');

获取用户输入数据

$request->input('name');

获取用户输入数据,第二个是默认值,如果用户没有输入,就返回默认值

$request->input('name', 'laravel8');

获取传递过来的数组,单个顺序是从 0 开始

$name = $request->input('products.0.name');
$names = $request->input('products.*.name');

只获取 GET 数据

$request->query('name', 'laravel8');

只获取 POST 数据

$request->post('name', 'laravel8');

最后的补充

这里就不浪费大家的时间了,详细的方法可以查看官方文档,或者直接Request类的源码。

以上的阐述只对有基础的朋友有作用,如果对以上的知识点有质疑或者不懂的可以在下方留言。

以上是关于监控系统实践第15天:5天上手Laravel8.5之HTTP请求篇(4/5)的主要内容,如果未能解决你的问题,请参考以下文章

监控系统实践第12天:5天上手Laravel8.5之路由篇(1/5)

监控系统实践第13天:5天上手Laravel8.5之中间件篇(2/5)

监控系统实践第14天:5天上手Laravel8.5之控制器篇(3/5)

监控系统实践第10天:用宝塔部署Laravel8.5框架的站点

监控系统实践第9天:使用Composer下载Laravel8.5

监控系统实践第11天:配置Laravel8.5与开关网站方法