【问题标题】:Sort Table when clicking on a table header in Laravel在 Laravel 中单击表头时排序表
【发布时间】:2022-07-05 22:31:30
【问题描述】:

我有一张在我的 laravel 系统中显示的表格。我希望能够在单击表头时自动对表中的字段进行排序。

如何将表格标题变成一种超链接,当单击它时,它会从控制器运行查询? 这是页面的当前控制器:

public function index()
    {
        $user = Auth::user();
        $userId = Auth::id();
        $username = DB::table('users')
            ->select('staffName')
            ->where('id', $userId)
            ->pluck('staffName')
            ->first();

        $documents = Document::all();

        $managers = DB::table('documents')
            ->join('users', 'users.id', '=', 'documents.staff_id')
            ->select('documents.staffName','certName','trainingName','uploadCert')
            ->where('documents.staffName', $username)
            ->orWhere('reportingTo', $username)
            ->get();
        $employees = DB::table('documents')
            ->where('staffName', $username)
            ->get();

        return view('admin.leave.list', compact('documents', 'managers', 'employees', 'user'));
        // return $this->autoIndex(Document::class);
    }

这是刀片:

<div class="container-fluid">
            <div class="row">
                <div class="col-12">
                    <div class="card">
                        <div class="card-body">
                            <h5 class="card-title">Certificate List</h5>
                            <div class="table-responsive">
                                <table id="zero_config" class="table table-striped table-bordered">
                                    <thead>
                                        <tr>
                                            <th>No</th>
                                            <th>Name</th>
                                            <th>Training Name</th>
                                            <th>Certificate Name</th>
                                            <th>Certificate</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        @can('isAdmin')
                                        @foreach($documents as $document)
                                        <tr>
                                            <td>{{$loop -> index+1 }}</td>
                                            <td>{{$document -> staffName}}</td>
                                            <td>{{$document -> trainingName}}</td>
                                            <td>{{$document -> certName}}</td>
                                            <td><a href="storage/{{$document -> uploadCert}}" target="_blank">View Certificate</a></td>
                                        </tr>
                                        @endforeach
                                        @endcan

                                        @if($user -> role == 'manager')
                                        @foreach($managers as $manager)
                                        <tr>
                                            <td>{{$loop -> index+1 }}</td>
                                            <td>{{$manager -> staffName}}</td>
                                            <td>{{$manager -> trainingName}}</td>
                                            <td>{{$manager -> certName}}</td>
                                            <td><a href="storage/{{$manager -> uploadCert}}" target="_blank">View Certificate</a></td>
                                        </tr>
                                        @endforeach
                                        @endif

                                        @can('isEmployee')
                                        @foreach($employees as $employee)
                                        <tr>
                                            <td>{{$loop -> index+1 }}</td>
                                            <td>{{$employee -> staffName}}</td>
                                            <td>{{$employee -> trainingName}}</td>
                                            <td>{{$employee -> certName}}</td>
                                            <td><a href="storage/{{$employee -> uploadCert}}" target="_blank">View Certificate</a></td>
                                        </tr>
                                        @endforeach
                                        @endcan

                                    </tbody>
                                </table>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </div>

我可以对代码进行哪些操作或更改以使用表头进行排序功能?我能得到一些帮助吗?

【问题讨论】:

    标签: laravel sorting


    【解决方案1】:

    看看这里,kyslik package 的完整示例。 它易于安装和使用。

    对于 Contoller 代码,我所做的与文档有点不同。

     $subscriptions = Subscription::sortable()->orderBy('created_at', 'desc')->paginate(30);
    

    祝你好运

    【讨论】:

      猜你喜欢
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 2010-10-07
      • 2015-05-03
      • 1970-01-01
      相关资源
      最近更新 更多