web-dev-qa-db-ja.com

Laravel検証チェックボックス

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>

皆さんが私を助けてくれることを願っています!

17
Sander Van Keer

入力値が空の文字列またはfalseにならないように注意してください。キーが入力名属性の値である限り、「checkbox」=>「required」は問題ありません。

8
Calin Blaga

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'
]);
42
SnakeDrak

使用しているコードがチェックボックスの値をブール値として返すため、大きな不満がありました。

同様の状況がある場合は、次のルールを使用できます。

[
 'checkbox_field' => 'required|in:1',
]
4
Tschallacka

チェックボックスに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

2
Yasin Patel

検証ルールは、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
    ]);
1
Steve