如何解决Laravel DataTables 不显示任何结果
我按照本指南向我的管理部分中的所有合作伙伴显示:https://yajrabox.com/docs/laravel-datatables/master/quick-starter
不幸的是,没有错误,但我也没有看到包含所有项目的列表。数据库中有结果,但对我来说,它似乎没有进行查询,这就是没有结果的原因(在调试栏中我没有看到带有“合作伙伴”表的查询)。
route.PHP
Route::get('partners',[PartnerController::class,'index'])->name('partners.index');
合作伙伴控制器:
namespace App\Domains\Partner\Http\Controllers\Backend;
use App\Domains\Partner\DataTable\PartnersDataTable;
use App\Domains\Partner\Models\Partner;
use App\Domains\Partner\Services\PartnerService;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PartnerController extends Controller
{
public function index(PartnersDataTable $dataTable)
{
return $dataTable->render('backend.partner.index');
}
}
合作伙伴数据表:
namespace App\Domains\Partner\DataTable;
use App\Domains\Partner\Models\Partner;
use Yajra\DataTables\Html\Button;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Html\Editor\Editor;
use Yajra\DataTables\Html\Editor\Fields;
use Yajra\DataTables\Services\DataTable;
class PartnersDataTable extends DataTable
{
/**
* Build DataTable class.
*
* @param mixed $query Results from query() method.
* @return \Yajra\DataTables\DataTableAbstract
*/
public function dataTable($query)
{
return datatables()
->eloquent($query);
}
public function query(Partner $model)
{
return $model->newQuery();
}
/**
* Optional method if you want to use html builder.
*
* @return \Yajra\DataTables\Html\Builder
*/
public function html()
{
return $this->builder()
->setTableId('partners-table')
->columns($this->getColumns())
->minifiedAjax()
->dom('Bfrtip')
->orderBy(1)
->buttons(
Button::make('create'),Button::make('export'),Button::make('print'),Button::make('reset'),Button::make('reload')
);
}
/**
* Get columns.
*
* @return array
*/
protected function getColumns()
{
return [
Column::make('id'),Column::make('title'),];
}
/**
* Get filename for export.
*
* @return string
*/
protected function filename()
{
return 'Users_' . date('YmdHis');
}
}
index.blade.PHP:
@extends('backend.layouts.app')
@section('title',__('Partners'))
@section('breadcrumb-links')
@endsection
@section('content')
<x-backend.card>
<x-slot name="header">
@lang('Partners')
</x-slot>
@if ($logged_in_user->hasAllAccess())
<x-slot name="headerActions">
<x-utils.link
icon="c-icon cil-plus"
class="card-header-action"
:href="route('admin.partners.create')"
:text="__('Create partner')"
/>
</x-slot>
@endif
<x-slot name="body">
{!! $dataTable->table() !!}
</x-slot>
</x-backend.card>
@endsection
@push('after-scripts')
<script src="{{ asset('vendor/datatables/buttons.server-side.js') }}"></script>
{{$dataTable->scripts()}}
@endpush
这是 $dataTable->scripts() 生成的内容:
<script src="http://kitty/vendor/datatables/buttons.server-side.js"></script>
<script type="text/javascript">$(function(){window.LaravelDataTables=window.LaravelDataTables||{};window.LaravelDataTables["partners-table"]=$("#partners-table").DataTable({"serverSide":true,"processing":true,"ajax":{"url":"http:\/\/kitty\/admin\/partners","type":"GET","data":function(data) {
for (var i = 0,len = data.columns.length; i < len; i++) {
if (!data.columns[i].search.value) delete data.columns[i].search;
if (data.columns[i].searchable === true) delete data.columns[i].searchable;
if (data.columns[i].orderable === true) delete data.columns[i].orderable;
if (data.columns[i].data === data.columns[i].name) delete data.columns[i].name;
}
delete data.search.regex;}},"columns":[{"data":"id","name":"id","title":"Id","orderable":true,"searchable":true},{"data":"title","name":"title","title":"Title","searchable":true}],"dom":"Bfrtip","order":[[1,"desc"]],"buttons":[{"extend":"create"},{"extend":"export"},{"extend":"print"},{"extend":"reset"},{"extend":"reload"}]});});
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。