【发布时间】:2017-12-01 13:36:15
【问题描述】:
在 laravel 5.5 中,我想在提交表单时计算出我的字符串值。
为此,我创建了中间件 app/Http/Middleware/WorkTextString.php :
<?php
namespace App\Http\Middleware;
use Closure;
use App\Http\Traits\funcsTrait;
use function PHPSTORM_META\type;
class WorkTextString
{
use funcsTrait;
public function handle($request, Closure $next)
{
$request->name = $this->workTextString($request->name); // Fields I want to modify
$request->description = $this->workTextString($request->description);
return $next($request);
}
protected function workTextString($str) // my workout for any string
{ // some string routing, like trimming more 2 spaces inside of string
...
在 app/Http/Kernel.php 我添加了我的中间件:
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'WorkTextString'=>\App\Http\Middleware\WorkTextString::class,
];
在路由/api.php 中:
Route::group([ 'prefix' => '/v1', 'namespace' => 'Api\V1', 'as' => 'api.'], function () {
Route::resource('user_task_types', 'UserTaskTypesController', ['except' => ['create', 'edit']])->middleware('WorkTextString');
我看到我的中间件被触发,但修改没有保存到数据库。 哪个是正确的方法?
谢谢!
【问题讨论】:
-
请编辑标题,不清楚您的要求。同时显示您的
workTextString()定义。
标签: php laravel middleware