我只是需要知道如何验证我的数组复选框值是否在某个值列表中。因此,我使用如下所示的“in:”验证规则,但它返回错误,即选中框的值无效。我是否需要做一些不同的事情,因为它是通过AJAX发送的值数组?Laravel验证复选框某些值
控制器:
if ($request->ajax())
{
/*Create record in UserType Model with the values from the Type checkboxes*/
$Type = Input::get('Type');
$this->validate($request, [
'Type' => 'required|in:A,B,C,D',
],[
'required' => 'You must select at least one.',
]);
foreach ($Type as $key => $value)
{
Auth::user()->userType()->create([
'profile_id' => Auth::user()->id,
'type' => $value,
]);
}
}
在我的形式,我有以下输入...
<input type="checkbox" name="Type[]" value="A"/>
<input type="checkbox" name="Type[]" value="B"/>
<input type="checkbox" name="Type[]" value="C"/>
UPDATE:
所以,我的Laravel文档中发现,你可以验证使用*来获取数组中的键/值的数组。然而,在我的数组中它只是Type [],所以我尝试了以下,没有运气。
$this->validate($request,[
'type.*' => 'required|in:A,B,C,D'
// or
'type*' => 'required|in:A,B,C,D'
]);
只是不工作。我知道我需要检索*
的数组值。
UPDATE:
我跑Laravel 5.1时,该选项用于验证只在Laravel 5.2可用。解决了。
您是否找到解决方案 –
H没有机会检查。我今晚会更新这个主题。但是,我已经完成了您的建议,并且没有正确验证。它不承认验证标准并允许提交表单。 –
如果你只是使用'required'?没有'in'。和'类型'必须拼写完全一样的形式,虽然(1。字母大写) –