【发布时间】:2015-10-04 21:08:34
【问题描述】:
我使用 Ajax 将表单数据发送到资源控制器 (Laravel 5)。但是,我将此调用作为数组发送表单字段(没有直接表单字段变量)
我已经设置了一个请求,其中包含需要验证的规则。
然而,这种验证的默认行为是它只查看请求对象内的直接字段变量。因此,例如,如果我要发送:input name="firstname",我只需要设置
public function rules()
{
return [
'firstname' => 'required|alpha|between:1,128'
];
}
但是现在,我如何验证 Request 对象中的数组呢?例如,如果我发送 input name="nameArray['firstname']" 会怎样?
所以我想做的是在将 Request 对象发送到验证之前对其进行修改。或者也许有更好的方法来处理这个问题。我知道可以像这样在规则方法中循环对象:
foreach($this->request->get('nameArray') as $key => $val)
{
}
但这无济于事,因为 Laravel 的 Validator 将使用 Request 对象中设置的直接字段。所以我不能在这里改变它。 我想从数组中取出各个表单字段,然后将它们直接放回 Request 对象中,因此可以使用设置规则等相同的方式进行验证。
顺便说一句,我使用这种验证方法,通过在资源控制器中调用 Request 方法,在本例中,我想存储输入。
public function store(CreateStudentRequest $request)
{
}
【问题讨论】:
标签: laravel-5 laravel-validation