its*_*oco 4 php laravel laravel-5 laravel-5.8
在我的Laravel 5.8应用程序中,我有许多API路由返回分页结果。如果我向我的API请求附加了以下查询字符串,则可以禁用分页。
http://api.test/users/?no_paginate=1
Run Code Online (Sandbox Code Playgroud)
我的问题是...如何禁止在某些路线上使用no_paginate?我希望在请求类中进行一些验证,但是我在文档中找不到任何内容。
您可以使用Global Middleware来做到这一点。
首先安排中间件在所有路径上运行:
// routes.php
$app->middleware([
App\Http\Middleware\DisableNoPaginate::class
]);
Run Code Online (Sandbox Code Playgroud)
然后定义中间件应该做什么:
// src/App/Http/Middleware/DisableNoPaginate.php
<?php
namespace App\Http\Middleware;
use Closure;
class DisableNoPaginate
{
public function handle($request, Closure $next)
{
//remove no_paginate param from request object
unset($request['no_paginate']);
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)