我只是需要知道如何驗證我的數組複選框值是否在某個值列表中。因此,我使用如下所示的「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。字母大寫) –