此问题已在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
,它就能正常工作。
有没有办法在我自己的请求类中实现更改?
答案 0 :(得分:1)
我在Github代表中找到了一个解决方案。
将以下内容添加到您的请求类中。
public function all()
{
$this->merge( $this->request->all() );
return parent::all();
}
如果要检查规则中的类型,可能需要在规则中添加“可空”。