Laravel TransformRequest 不适用于自己的请求 类
Laravel TransformRequest not applying to own Request classes
此问题已在 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
它就可以了。
有什么方法可以实现我自己的请求中的更改类?
我在 Github 代表中找到了解决方案
将以下内容添加到您的请求中 class。
public function all()
{
$this->merge( $this->request->all() );
return parent::all();
}
如果您要检查规则中的类型,您可能需要将 "nullable" 添加到规则中。
此问题已在 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
它就可以了。
有什么方法可以实现我自己的请求中的更改类?
我在 Github 代表中找到了解决方案
将以下内容添加到您的请求中 class。
public function all()
{
$this->merge( $this->request->all() );
return parent::all();
}
如果您要检查规则中的类型,您可能需要将 "nullable" 添加到规则中。