Validating multiple checkboxes laravel 5.2

Caleb Oki

I am trying to validate checkboxes in my Laravel application. The HTML name and values of the checkbox are generated from my database and I am doing a loop to display all the boxes. How do I do a validation rule so that at least one box is checked or required? These are the relevant view code from my blade file and the method from my controller.

//Snippet from create-user.blade.php
<div class='form-group'>
    @foreach ($roles as $role) //$role variable gets its data from the db
    {{ Form::label('role', $role->display_name) }}
    {{ Form::checkbox($role->name, $role->id) }}
    @endforeach
</div>

//Snippet from UserController.php
public function addUser(Request $request)
{

    $this->validate($request, [
        'name'=>'required|max:120|alpha_dash',
        'email'=>'required|email|unique:users',
        $role->name =>'required', //This line results in 'Undefined variable: role'
        'password'=>'required|min:4',
        'password_confirmation'=>'required|min:4']
    );
    $email = $request['email'];
    $name = $request['name'];
    $password = bcrypt($request['password']);
    $user = new User();
    $user->email = $email;
    $user->name = $name;
    $user->password = $password;
    $user->save();

    return redirect()->route('account');
}

What do I pass in place of $role->name in the validation array? Thanks

Giedrius Kiršys

Instead of creating checkbox with name of role, better create checkbox with static name like roles[]. I modified your code, have a look. Also added roles attach to user (I assuming You already have roles relationship in User model).

//Snippet from create-user.blade.php
<div class='form-group'>
    @foreach ($roles as $role) //$role variable gets its data from the db
    {{ Form::label('roles', $role->display_name) }}
    {{ Form::checkbox('roles[]', $role->id) }}
    @endforeach
</div>

//Snippet from UserController.php
public function addUser(Request $request)
{
    $this->validate($request, [
            'name'                  => 'required|max:120|alpha_dash',
            'email'                 => 'required|email|unique:users',
            'roles'                 => 'required',
            'password'              => 'required|min:4',
            'password_confirmation' => 'required|min:4'
        ]
    );
    $email          = $request['email'];
    $name           = $request['name'];
    $password       = bcrypt($request['password']);
    $user           = new User();
    $user->email    = $email;
    $user->name     = $name;
    $user->password = $password;
    $user->save();

    //attach roles
    $user->roles()->sync($request->input('roles',[]));

    return redirect()->route('account');
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Deleting multiple rows using checkboxes in Struts2

From Dev

Laravel Validation: Validating OR instead of AND

From Dev

Validating Array in Laravel

From Dev

Validating multiple attributes within a inline validator in Yii 2

From Dev

Laravel 5 - multiple use of template

From Dev

Laravel 5 - Validating Mime types

From Dev

Laravel 5 - Validate Multiple Request

From Dev

Laravel 5 Redirect::to with multiple parameters

From Dev

Laravel 5: Updating Multiple Records

From Dev

Having trouble validating on update (Laravel 5)

From Dev

Schematron validating multiple elements

From Dev

Laravel 5 Validation - validating the sum of 2 fields

From Dev

Angular 2: Get Values of Multiple Checked Checkboxes

From Dev

Validating a JSON array in Laravel

From Dev

Laravel 5 Multiple Download File

From Dev

laravel 5 search multiple fields

From Dev

Validating multiple files in array

From Dev

Laravel Validation: Validating OR instead of AND

From Dev

Javascript validating multiple fields

From Dev

Validating multiple attributes within a inline validator in Yii 2

From Dev

Validating 2 out of 8 true/false checkboxes or checkboxes

From Dev

Parsley Checkboxes & Radios not validating in IE only

From Dev

pass multiple id's from checkboxes to my controller with Laravel

From Dev

Validating multiple files in array

From Dev

Validating array request in Laravel

From Dev

Validating a checkbox in Laravel

From Dev

Validating forms on laravel

From Dev

Multiple Checkboxes

From Dev

Laravel: Filtering results based on input from multiple checkboxes