0

I have a laravel project that implements datatables to display data. I want to use some labels to format some columns on the table.

The problem now is having a second switch statement , the first one is working fine and the formatting is showing up fine.

columns: [
        { data: 'id', name: 'id' },
        { data: 'name', name: 'name' },
        { data: 'role_id', name: 'role_id' },
        { data: 'phone', name: 'phone' },
        { data: 'email', name: 'email' },
        { data: 'status', name: 'status' },
        { data: 'created_at', name: 'created_at' },
        { data: 'action', name: 'action' }
        ],
columnDefs : [
        { targets : [5],
          render : function (data, type, row) {
            switch(data) {
               case 0 : return '<span class="label label-danger">Inactive</span>'; 
               break;
               case 1 : return '<span class="label label-primary">Active</span>'; 
               break;
               case 2 : return '<span class="label label-danger">Suspended</span>'; 
               break;

            }
        }
},

I want to have column 2 and 5 formatted with labels, how to achieve this ?

Bongani Dlamini
  • 103
  • 2
  • 11

1 Answers1

0

I managed to sort it out.

One my initial call from the controller I had the to use the default value from the table then change the datatable code to call the table name as is.

from this

                    return $user->role['name'];
                })

to this

                    return $user->role_id;
                })

then I had to call my columnDefs on the index view like this

            { data: 'id', name: 'id' },
            { data: 'name', name: 'name' },
            { data: 'role_id', name: 'role_id' },
            { data: 'phone', name: 'phone' },
            { data: 'email', name: 'email' },
            { data: 'status', name: 'status' },
            { data: 'created_at', name: 'created_at' },
            { data: 'action', name: 'action' }
            ],
        columnDefs : [
            { targets : [5],
                render : function (data, type, row) {
                switch(data) {
                    case 0 : return '<span class="label label-danger">Inactive</span>'; 
                break;
                    case 1 : return '<span class="label label-primary">Active</span>'; 
                break;
                    case 2 : return '<span class="label label-danger">Suspended</span>'; 
                break;
                }
            }
        },
            { targets : [2],
                render : function (data, type, row) {
                switch(data) {
                    case 1 : return '<span class="label label-danger"> SuperAdmin </span>'; 
                break;
                    case 2 : return '<span class="label label-primary">  Admin </span>'; 
                break;
                    case 3 : return '<span class="label label-success"> Support </span>'; 
                break;
                    case 4 : return '<span class="label label-info">Customer Admin </span>'; 
                break;
                    case 5 : return '<span class="label label-dark"> Customer Support </span>'; 
                break;
                    case 6 : return '<span class="label label-yellow">Customer Technician </span>'; 
                break;
                    case 7 : return '<span class="label label-purple"> App User </span>'; 
                break;
                }
            }
        }
    ],
Bongani Dlamini
  • 103
  • 2
  • 11