yajra数据表中的搜索选择选项未显示所有页面

问题描述

当我在laravel中使用yajra数据表时,希望有所帮助 搜索选择选项仅显示当前页面,请注意以下屏幕快照,因为Iam试图在搜索选项中获取(管理员,编辑者和用户),但显示(仅用户和编辑者)。如下面的屏幕截图 https://i.stack.imgur.com/wUAv6.png 这就是我使用<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>的引用js,我通过{!! $dataTable->scripts() !!} and {!! $dataTable->table() !!}来获取刀片文件中的数据

下面是我对UsersDataTable.php的整个代码

<?php
 
namespace App\DataTables;
 
use App\User;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Services\DataTable;
 
class UsersDataTable extends DataTable
{
 
    public function dataTable($query)
    {
        return datatables()
            ->eloquent($query)
            ->editColumn('created_at',function ($query) {
                return Carbon::parse($query->created_at)->format('Y-m-d');
            })
 
 
            ->addColumn('roles',function ($query) {
                return $query->roles->map(function ($role) {
                    return $role->name;
                })->implode('<br>');
            })
            ->editColumn('profile',function ($model) {
                return $model->profile->lang == "en" ? __("lang.English") : ($model->profile->lang == "ar" ? __("lang.Arabic") : ($model->profile->lang  == Null ? __("lang.Without") :
                            ''));
            })
            ->filterColumn('profile.lang',function ($query,$keyword) {
                if (stristr(__("lang.English"),$keyword))
                    $query->whereHas('profile',function (Builder $query) {
                        $query->where('lang','en');
                    });
                elseif (stristr(__("lang.Arabic"),'ar');
                    });
                elseif (stristr(__("lang.Without"),Null);
                    });
            })
            ->filterColumn('roles',$keyword) {
                if (stristr('Editor',$keyword))
                    $query->whereHas('roles',function (Builder $query) {
                        $query->where('name','Editor');
                    });
                elseif (stristr('User','User');
                    });
                elseif (stristr('Admin','Admin');
                    });
            })
 
            ->addColumn(
                'show','<a href="{{ url("profile/".$id)}}" class="btn btn-primary btn-sm d-flex flex-nowrap"><i class="fas fa-eye mr-1 my-auto"></i> {{ __("lang.Show") }}</a>'
            )
            ->addColumn(
                'edit','<a href="{{ route(adminview("users.edit"),$id)}}" class="btn btn-info btn-sm d-flex flex-nowrap"><i class="fas fa-edit mr-1 my-auto"></i> {{ __("lang.Edit") }}</a>'
            )
            ->addColumn(
                'delete','admin.users_delBtn'
            )
            ->addColumn('checkbox','<input type="checkbox" name="checked[]" class="item_checkbox" value="{{ $id }}" />')
            ->rawColumns([
                'checkbox','show','edit','delete','roles'
            ]);
    }
 
 
    public function query(User $model)
    {
        return $model->newQuery()->with('roles','profile')
            ->selectRaw('users.*')
    }
 
    public function html()
    {
        return $this->builder()
            ->setTableId('users-table')
            ->minifiedAjax()
            ->orderBy(1)
            ->columns($this->getColumns())
            ->parameters([
                'dom' => 'Blfrtip','buttons' => [
                    ['create','print','excel','reload'],['className' => 'delBtn','text' => '<i class="fa fa-trash"></i> ' . trans("lang.Delete")]
                ],'lengthMenu' => [[10,25,50,100,250,-1],[10,trans('lang.All')]],'initComplete' => "function () {
                    this.api().columns([1,2,3,6]).every(function () {
                        var column = this;
                        var input = document.createElement(\"input\");
                        $(input).attr( 'style','text-align: center;width: 100%');
                        $(input).appendTo($(column.footer()).empty())
                        .on('keyup',function () {
                            column.search($(this).val(),false,true).draw();
                        });
                    });
 
                     
                    this.api().columns([4,5]).every( function () {
                        var column = this;
                        var select = $('<select><option value=\"\"></option></select>')
                            .appendTo( $(column.footer()).empty() )
                            .on( 'change',function () {
                                var val = $.fn.dataTable.util.escapeRegex(
                                    $(this).val()
                                );
          
                                column
                                    .search( val )
                                    .draw();
                                     
                                 
                            } );
                            column.data().unique().sort().each( function ( d,j ) {
                            select.append( '<option value=\"'+d+'\">'+d+'</option>' )
                        } );
                    } );
                         
 
 
                }",]);
    }
 
 
    protected function getColumns()
    {
        return [
            Column::make('checkbox')
                ->title('<input type="checkbox" class="check_all" onclick="check_all()" />')
                ->orderable(false)
                ->searchable(false)
                ->exportable(false)
                ->printable(false),Column::make('id')
                ->title(__('lang.User id')),Column::make('name')
                ->title(__('lang.Name')),Column::make('email')
                ->title(__('lang.Email')),Column::make('roles')
                ->title(__('lang.Role')),Column::make('profile','profile.lang')
                ->title(__('lang.Favorite language')),Column::make('created_at')
                ->title(__('lang.Created_at')),Column::computed('show')
                ->title(__('lang.Show'))
                ->orderable(false)
                ->searchable(false)
                ->exportable(false)
                ->printable(false),Column::computed('edit')
                ->title(__('lang.Edit'))
                ->orderable(false)
                ->searchable(false)
                ->exportable(false)
                ->printable(false),Column::computed('delete')
                ->title(__('lang.Delete'))
                ->orderable(false)
                ->searchable(false)
                ->exportable(false)
                ->printable(false),];
    }
 
 
    protected function filename()
    {
        return 'Users_' . date('YmdHis');
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...