Флажок Render в DataTables - PullRequest
       1

Флажок Render в DataTables

0 голосов
/ 20 сентября 2018

У меня есть эта таблица,

    <table class="table is-fullwidth" id="users-table">
        <thead>
            <tr>
                <th> </th>
                <th> ID </th>
                <th> FIRST NAME </th>
                <th> LAST NAME </th>
                <th> EMAIL </th>
                <th> ROLE </th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th> </th>
                <th> ID </th>
                <th> FIRST NAME </th>
                <th> LAST NAME </th>
                <th> EMAIL </th>
                <th> ROLE </th>
            </tr>
        </tfoot>
    </table>

и dataTable javascript в моем index.blade.php

<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
<script>
    $(function() {
        $('#users-table').DataTable({
            processing: true,
            serverSide: true,
            ajax: 'systemusers/data',
            columnDefs: [ {
                orderable: false,
                targets:   0
            } ],
            select: {
                style:    'os',
                selector: 'td:first-child'
            },
            order: [[ 1, 'asc' ]],
            columns: [
                { data: 'select', name: 'select' },
                { data: 'id', name: 'id' },
                { data: 'first_name', name: 'users.first_name' },
                { data: 'last_name', name: 'users.last_name' },
                { data: 'email', name: 'users.email' },
                { data: 'role', name: 'roles.role' },
            ]
        });
    })
</script>

и этот метод в моем контроллере

public function anyData()
{
    $users = UserRole::selectRaw('users.id, users.first_name, users.last_name, users.email, roles.role')
        ->join('users', 'users.id', '=', 'user_roles.user_id')
        ->join('roles', 'roles.id', '=', 'user_roles.role_id');

    return Datatables::of($users)
        ->addColumn('select', 'systemusers::data-table.checkbox')
        ->make(true);
}

а для data-table\checkbox.blade.php содержание таково:

<input type="checkbox" name="" value="">

Это основано на документации, найденной здесь https://yajrabox.com/docs/laravel-datatables/master/add-column и некотором примере здесь https://datatables.yajrabox.com/eloquent/add-edit-remove-column

, но когда япосмотрите на результат, это был результат.enter image description here

Я печатаю html-код чекбокса. У меня вопрос, как сделать это в чекбоксе?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Поскольку вы используете расширение select, и флажок должен работать вместе с этим, вам действительно не нужно , чтобы самостоятельно установить флажок.

Просто добавьте className: 'select-checkbox' в первый столбец, т.е.

$('#users-table').DataTable({
  processing: true,
  serverSide: true,
  ajax: 'systemusers/data',
  columnDefs: [{
    orderable: false,
    targets: 0,
    className: 'select-checkbox' //<--- here
  }],
  select: {
    style: 'os',
    selector: 'td:first-child'
  },
  order: [
    [1, 'asc']
  ],
  columns: [
    { data: 'select', name: 'select' },
    { data: 'id', name: 'id' },
    { data: 'first_name', name: 'users.first_name' },
    { data: 'last_name', name: 'users.last_name' },
    { data: 'email', name: 'users.email' },
    { data: 'role', name: 'roles.role' },
  ]
});

См. https://datatables.net/extensions/select/examples/initialisation/checkbox.html

0 голосов
/ 20 сентября 2018

Вы можете попробовать {!! '<input type="checkbox" name="" value="">' !!} вместо {{ '<input type="checkbox" name="" value="">' }}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...