Laravel TransformRequest不适用于自己的请求类

时间:2017-01-29 11:27:20

标签: laravel laravel-5 laravel-request laravel-5.4

此问题已在Laravel 5.4.9中修复。

这两个新的中间件类不适用于我自己的请求。 这两个新的中间件是:

\App\Http\Middleware\TrimStrings::class
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class

但是,他们不会将更改应用于我自己的请求。例如:我有这个要求:

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;

class CreateStoreRequest extends FormRequest
{
    public function authorize()
    {
        return Auth::check();
    }

    public function rules()
    {
        var_dump( $this->all() ); // Content not handled by middleware

        return [
            // Rules
        ];
    }
}

当我使用var_dump时,我可以看到内容没有改变。

如果我在我的控制器中使用Illuminate\Http\Request,它就能正常工作。

有没有办法在我自己的请求类中实现更改?

1 个答案:

答案 0 :(得分:1)

我在Github代表中找到了一个解决方案。

将以下内容添加到您的请求类中。

public function all()
{
    $this->merge( $this->request->all() );

    return parent::all();
}

如果要检查规则中的类型,可能需要在规则中添加“可空”。