php Laravel验证复选框

k2fxgqgv  于 2022-12-10  发布在  PHP
关注(0)|答案(6)|浏览(182)

我正在使用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>

我希望你们能帮助我!

j5fpnvbx

j5fpnvbx1#

使用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'
]);
inn6fuwd

inn6fuwd2#

只要输入的值不是空字符串或false,它就可以工作。并且'checkbox' =〉'required'只要键是输入名称属性的值就可以。

dwbf0jvd

dwbf0jvd3#

我只是有一个很大的挫折,因为我使用的代码返回的复选框值作为布尔值。
如果您有类似的情况,可以使用以下规则:

[
 'checkbox_field' => 'required|in:1',
]
7qhs6swi

7qhs6swi4#

对复选框使用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

sqyvllje

sqyvllje5#

public function store(Request $request)
    {
        $datos=$request->validate([
            'name'        =>'required|max:60',
            'descrip'   =>'nullable|max:255',
            'finish'    =>'nullable', //this is the checkbox
            'urgent'      =>'required|numeric|min:0|max:2',
            'limit'  =>'required|date-format:Y-m-d\TH:i'
        ]);

        
        if(isset($datos['finish'])){
            if ($datos['finish']=="on"){
                $datos['finish']=1;
            }
        }else{
            $datos['finish']=0;
        }
        $tarea=Tarea::create($datos);
        return redirect()->route('tarea.index');

    }
lxkprmvk

lxkprmvk6#

验证规则必须与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
    ]);

相关问题