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()));


相关文章
|
23天前
|
缓存 安全 PHP
深入浅出PHP框架:Laravel的优雅之旅
【8月更文挑战第15天】 探索PHP世界里的瑰宝,Laravel框架以其优雅、简洁著称。本文将带你领略Laravel的核心魅力,从安装到构建应用,再到高级特性的应用,让你轻松驾驭这个强大的工具。无论你是PHP新手还是资深开发者,这篇文章都将成为你理解并使用Laravel的指南针。
|
7天前
|
前端开发 中间件 PHP
|
7天前
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
30 0
|
7天前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
17 0
|
1月前
|
缓存 前端开发 API
PHP现代化之路:从传统到Laravel的演进
【8月更文挑战第4天】 在数字化浪潮不断推进的今天,PHP作为一门历史悠久的编程语言,面临着前所未有的挑战与机遇。本文将探讨PHP如何通过现代化改造,特别是Laravel框架的应用,实现从传统Web开发向现代应用架构的转变,并分析这一转变对开发者和项目带来的影响。
|
9天前
|
安全 中间件 网络安全
深入浅出PHP框架之Laravel的优雅云计算与网络安全:探索云服务、网络安全和信息安全的技术领域
【8月更文挑战第29天】在编程的世界里,PHP以其灵活性和易用性广受欢迎。本文将深入探讨PHP的一个流行框架——Laravel,揭示它如何以简洁、高雅的解决方案满足复杂的开发需求。我们将一起走进Laravel的世界,探索其背后的哲学,以及它如何让代码变得更加动人和富有韵律。
|
14天前
|
存储 关系型数据库 Linux
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
|
19天前
|
网络协议 API PHP
PhalApi:在宝塔一键安装部署PHP开源接口框架的教程
要在宝塔面板上一键安装部署PhalApi开源接口框架,首先进入宝塔软件商店,切换到“一键部署”选项,搜索“phalapi”并点击“一键部署”。安装时需填写接口域名、数据库名及密码,提交后等待安装完成。安装成功后可在宝塔面板中查看新站点和源代码目录,并通过DNS解析设置访问接口域名,如`http://myapi.phalapi.net/`。默认开启的调试模式便于测试,可通过修改`config/sys.php`中的`debug`值为`false`关闭。最后,在源代码中开发自己的PHP接口,PhalApi会自动生成在线接口文档,方便后续调用与维护。更多详细教程可参考官方文档。
|
2月前
|
缓存 中间件 API
PHP框架详解 - Laravel 框架
PHP框架详解 - Laravel 框架
|
2月前
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
81 1
下一篇
DDNS