如何对数据表中的多列应用switch语句

How to apply switch statement for multi columns in datatables

我有一个 laravel 项目实现数据 tables 来显示数据。我想使用一些标签来格式化 table.

上的一些列

现在的问题是有第二个 switch 语句,第一个工作正常并且格式显示正常。

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;

            }
        }
},

我想用标签格式化第 2 列和第 5 列,如何实现?

我设法解决了。

在控制器的初始调用中,我不得不使用 table 中的默认值,然后更改数据table 代码以按原样调用 table 名称。

来自这个

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

到这个

                    return $user->role_id;
                })

然后我不得不像这样在索引视图上调用我的 columnDefs

            { 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;
                }
            }
        }
    ],