PHP - Laravel 接口请求参数获取(多种方式)

简介: PHP - Laravel 接口请求参数获取(多种方式)

一、简介

  • 在之前路由中配置路由参数,但它并不适合带大量的请求数据。
Route::get('req/{参数名称}', function ($参数名称) {
    return 'Get 请求';
});

二、方式一:Input

  • 通过 Input 类来获取数据(use Illuminate\Support\Facades\Input;),这里只列一些常用的。
// 获取指定参数,并当没传该参数时附带默认值
Input::get('参数名称', '默认值(当参数没传时生效)');
// 获取所有的用户的输入
Input::all();
// 获取指定指定参数
Input::only(['参数名称']);
// 获取除指定指定参数以外的所有参数
Input::except(['参数名称']);
// 判断是否存在指定参数
Input::has('参数名称');
....
  • 例如:获取接口中的 id 字段,如果没有默认为 0
// 例如:http://www.dzm.com:8088/req?id=10
Route::get('req', function () {
    return Input::get('id', 0);
});
或者控制器中使用:
public function index() {
  // 可以使用 Input
  return Input::has('id') ? '存在' : '不存在';
}
  • Input 使用注意:
// 这种写法是错误的,默认带过来的是 Request 对象,而不是 Input
Route::get('req', function (Input $input)) {
    return $input->get('id', 0);
});
// 这种写法是正确的,控制器中使用也是一样需要注意这点
Route::get('req', function (Request $request)) {
    return $request->get('id', 0);
});

三、方式二:Request

  • 通过 Request 类来获取数据(use Illuminate\Http\Request),这里只列一些常用的。
// 获取指定参数,并当没传该参数时附带默认值
Request::get('参数名称', '默认值(当参数没传时生效)');
// 获取所有的用户的输入
Request::all();
// 获取指定指定参数
Request::only(['参数名称']);
// 获取除指定指定参数以外的所有参数
Request::except(['参数名称']);
// 判断是否存在指定参数
Request::has('参数名称');
// 判断请求类型(当一个接口支持多种请求方式的时候可以进行判断)
Request::isMethod('请求方式(get、post、put ...)');
....
  • web.php 中使用:
// 使用 Request:: 不能导入 use Illuminate\Http\Request;
Route::get('req', function () {
    return Request::has('id') ? '存在' : '不存在';
});
// 使用 $request 必须导入 use Illuminate\Http\Request;
Route::get('req', function (Request $request) {
   return $request->has('id') ? '存在' : '不存在';
});
  • 控制器(例如:LoginController.php) 中使用:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
class LoginController extends Controller
{
    // 登录
    public function index(Request $request) {
        // 不能使用 Request:: 会报错,控制器方法中只能使用 $request
        // return Request::has('id') ? '存在' : '不存在';
        // 可以使用 Input::
        // return Input::has('id') ? '存在' : '不存在';
        // 每个路由对象都会有 $request 对象
        return $request->has('id') ? '存在' : '不存在';
    }
}
  • 路由参数 - 细节注意
// 如果不需要使用 $request,且有路由参数
Route::get('req/{tag?}', function ($tag = '') {
    return $tag;
});
// 如果需要使用 $request,且有路由参数
Route::get('req/{tag?}', function (Request $request, $tag = '') {
    // return $request->has('id') ? '存在' : '不存在';
    return $tag;
});

四、方式三:request()

  • request() 辅助函数方式获取,不需要导入任何库或者命名空间,直接使用。
    request() 函数返回的就是 Request 类对象,所以他两的可用方法是一致的。
// 获取指定参数,并当没传该参数时附带默认值
request()->get('参数名称', '默认值(当参数没传时生效)');
// 获取所有的用户的输入
request()->all();
// 获取指定指定参数
request()->only(['参数名称']);
// 获取除指定指定参数以外的所有参数
request()->except(['参数名称']);
// 判断是否存在指定参数
request()->has('参数名称');
// 判断请求类型(当一个接口支持多种请求方式的时候可以进行判断)
request()->isMethod('请求方式(get、post、put ...)');
....
  • 如果需要这个对象更多的可用方法,可以输出该对象的所有可用方法。
dump(get_class_methods(request()));


相关文章
|
2月前
|
中间件 PHP 调度
深入浅出PHP框架之Laravel的优雅
【10月更文挑战第3天】在PHP的世界里,Laravel以其优雅和简洁闻名。本文将带你走进Laravel的世界,探索它的魔法。我们将通过代码示例,一步步揭示Laravel的魅力。准备好,让我们一起开始这场奇妙的旅程吧!
|
1月前
|
缓存 安全 PHP
深入浅出PHP框架之Laravel的优雅与实用
【10月更文挑战第22天】在PHP的世界里,Laravel如同一股清流,以其优雅的设计和实用的功能赢得了广大开发者的喜爱。本文将带你走进Laravel的世界,探索其背后的设计哲学,以及如何利用Laravel构建高效、可维护的Web应用。从路由到模型,从控制器到视图,我们将一步步揭开Laravel的神秘面纱。
48 3
|
3月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
1月前
|
前端开发 中间件 PHP
PHP框架深度解析:Laravel的魔力与实战应用####
【10月更文挑战第31天】 本文作为一篇技术深度好文,旨在揭开PHP领域璀璨明星——Laravel框架的神秘面纱。不同于常规摘要的概括性介绍,本文将直接以一段引人入胜的技术剖析开场,随后通过具体代码示例和实战案例,逐步引导读者领略Laravel在简化开发流程、提升代码质量及促进团队协作方面的卓越能力。无论你是PHP初学者渴望深入了解现代开发范式,还是经验丰富的开发者寻求优化项目架构的灵感,本文都将为你提供宝贵的见解与实践指导。 ####
|
2月前
|
存储 前端开发 PHP
深入浅出PHP框架之Laravel的优雅
【9月更文挑战第31天】在编程世界里,PHP语言如同一位多才多艺的老匠人,而Laravel框架则是其手中的精工细作。本文将带你领略Laravel的魅力所在,从其优雅的设计哲学到实用的功能特性,再到如何通过实际代码示例掌握它的核心操作。让我们一起探索Laravel的世界,发现编程之美。
|
4月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
42 0
|
4月前
|
缓存 安全 PHP
深入浅出PHP框架:Laravel的优雅之旅
【8月更文挑战第15天】 探索PHP世界里的瑰宝,Laravel框架以其优雅、简洁著称。本文将带你领略Laravel的核心魅力,从安装到构建应用,再到高级特性的应用,让你轻松驾驭这个强大的工具。无论你是PHP新手还是资深开发者,这篇文章都将成为你理解并使用Laravel的指南针。
51 2
|
4月前
|
缓存 前端开发 API
PHP现代化之路:从传统到Laravel的演进
【8月更文挑战第4天】 在数字化浪潮不断推进的今天,PHP作为一门历史悠久的编程语言,面临着前所未有的挑战与机遇。本文将探讨PHP如何通过现代化改造,特别是Laravel框架的应用,实现从传统Web开发向现代应用架构的转变,并分析这一转变对开发者和项目带来的影响。
45 5
|
4月前
|
前端开发 中间件 PHP
|
4月前
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
155 0