laravel register関数を使用してユーザーを登録します。ユーザーが契約条件に同意する必要があるチェックボックスを追加しました。 laravelで「必須」検証を使用していますか?これは私の検証関数です:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'required',
]);
このような関数を使用すると、laravelがチェックされていても、チェックボックスに必要なエラーが表示されます。
これはチェックボックスのhtmlです
<input type="checkbox" name="checkbox" id="option" value="{{old('option')}}"><label for="option"><span></span> <p>Ik ga akkoord met de <a href="#">algemene voorwaarden</a></p></label>
皆さんが私を助けてくれることを願っています!
入力値が空の文字列またはfalseにならないように注意してください。キーが入力名属性の値である限り、「checkbox」=>「required」は問題ありません。
accepted
ルールを使用します。
検証中のフィールドは、yes、on、1、またはtrueでなければなりません。これは、「利用規約」の受け入れを検証するのに役立ちます。
あなたのケースのサンプル:
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'accepted'
]);
使用しているコードがチェックボックスの値をブール値として返すため、大きな不満がありました。
同様の状況がある場合は、次のルールを使用できます。
[
'checkbox_field' => 'required|in:1',
]
チェックボックスにrequired_without_allを使用します。
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'checkbox' =>'required_without_all',
]);
参照: https://laravel.com/docs/5.1/validation#available-validation-rules
検証ルールは、htmlフォームフィールドのname
属性と相関する必要があります。
return Validator::make($data, [
'firstName' => 'required|max:255',
'lastName' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'option' =>'required', //not checkbox
]);