この問題はLaravel 5.4.9で修正されました。独自のリクエストクラスにLaravel TransformRequestが適用されない
2つの新しいミドルウェアクラスは、自分のリクエストには適用されません。 二つの新しいミドルウェアは、以下のとおりです。
\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
を使用している場合は動作します。
独自のリクエストクラスに変更を実装する方法はありますか?
メソッドでCreateStoreRequestを使用してdd($ request-> all())を実行して結果を共有しようとすると、正しく動作するはずです –
未処理のコンテンツを返します。また、関数をデバッグして実行しています。ヘルパーリクエスト( 'field')を使用すると、処理されたコンテンツが返されます。問題は、自分のリクエストクラスで処理されたコンテンツを検証のために使用することです。 – andershagbard
トリムして手動で変換する(trim()とterany演算子を使用して変換する)私はそれらのミドルウェアは要求の後に動作すると思う。 –