hobbily/laravel-xml-middleware

Laravel 中间件,用于接受 XML 请求

1.2.0 2017-09-26 03:13 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:49:25 UTC


README

Laravel 中间件,用于接受 XML 请求

配置

通过 Composer 安装

composer require tucker-eric/laravel-xml-middleware

注册服务提供者

config/app.php 中将服务提供者添加到 providers 数组

    'providers' => [
        //Other Service Providers
        XmlMiddleware\XmlRequestServiceProvider::class,
    ];

注册中间件

app/Http/Kernel.php

    protected $routeMiddleware = [
            /// Other Middleware
            'xml' => XmlRequestMiddleware::class,
        ];

将中间件应用于路由

根据需要添加中间件

控制器中间件

class MyController extends Controller
{
    public function __construct()
    {
        $this->middleware('xml');
    }
}

路由中间件

    Route::group(['middleware' => 'xml'], function() {
        Route::post('my-api-endpoint', 'MyOtherController@store');
    });

通过中间件访问 XML 输入

如果您使用中间件,它将自动将 XML 注入请求作为数组,您可以在控制器中使用 $request->all() 访问 XML 数据

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class MyController extends Controller
{
    public function __construct()
    {
        $this->middleware('xml');
    }
    
    public function store(Request $request)
    {
        $request->all();
    }
}

访问 XML 输入

要使用中间件以外的中间件访问 XML 输入,请在 Request 上使用 xml() 方法

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

Class MyOtherController extends Controller
{
    public function store(Request $request)
    {
        $xml = $request->xml();
    }
}

要作为对象访问 XML 请求,请将 false 传递给 xml() 方法

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

Class MyOtherController extends Controller
{
    public function store(Request $request)
    {
        $xml = $request->xml(false);
    }
}