问题描述
我已为所有评论成功实施了 yajra 数据表。一篇评论可以有 3 种状态:Approved
、Pending
、Blocked
。
我在数据表上有一列名为 Status
,我想按状态对列进行排序。默认情况下,状态按照 Approved
和 Declined
而不是 Pending
。
有什么办法可以让我通过路由这 3 个状态来对这个列进行排序?
我确定我的问题有一些 editColumn
或 filterColumn
方法,但我没有在任何地方找到它。
为了@andrewjames 的乐趣,我在这里添加了一些不必要的代码:
public function indexDataService()
{
$reviews = DB::table('reviews')
->join('users','reviews.user_id','=','users.id')
->join('statuses','reviews.status_id','statuses.id')
->join('products','reviews.product_id','products.id')
->join('categories','reviews.category_id','categories.id')
->select([
'reviews.*','reviews.created_at AS created_at','statuses.title AS status',DB::raw('CONCAT(users.first_name," ",users.last_name) AS full_name'),'products.title',DB::raw('categories.title as category'),])
->where('reviews.deleted_at',NULL);
return Datatables::of($reviews)
->addColumn('action',function($review){
return view('admin/reviews/reviews_actions',compact('review'));
})
->editColumn('created_at',function ($review) {
$formatedDate = Carbon::createFromFormat('Y-m-d H:i:s',$review->created_at)->format('d-m-Y');
return $formatedDate;
})
->filterColumn('full_name',function ($query,$keyword) {
$keywords = trim($keyword);
$query->whereRaw("CONCAT(first_name,last_name) like ?",["%{$keywords}%"]);
})
->filterColumn('category',$keyword) {
$keywords = trim($keyword);
$query->whereRaw("categories.title like ?",["%{$keywords}%"]);
})
->make(true);
}
在刀片上:
<script>
$('#category-reviews-table tfoot th').each( function () {
var title = $(this).text();
$(this).html( '<input type="text" placeholder="'+title+'" />' );
} );
$(function() {
$('#category-reviews-table').DataTable({
"sDom":"ltipr",processing: false,serverSide: true,"language": {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Italian.json"
},ajax: '{{ route('admin.reviews.data') }}',columnDefs: [
{"className": "dt-center","targets": "_all"},{
targets: [1],render: function ( data,type,row ) {
return type === 'display' && data.length > 10 ?
data.substr( 0,20 ) +'…' :
data;
}
}
],columns: [
{ data: 'full_name',name: 'full_name' },{ data: 'title',name: 'products.title' },{ data: 'category',name: 'category'},{ data: 'no_yes',name: 'reviews.no_yes',searchable:false },{ data: 'status',name: 'status',searchable:false,render: function( data,full,Meta ) {
if (data === 'In attessa') {
return "<span class=\"badge badge-warning\">In attessa</span>";
} else if (data === 'Approvata') {
return "<span class=\"badge badge-success\">Approvata</span>";
} else if (data === 'Rifiutata') {
return "<span class=\"badge badge-danger\">Rifiutata</span>";
}
}
},{ data: 'created_at',name: 'reviews.created_at',searchable:false },{ data: 'action',name: 'action',orderable: false,searchable:false }
],initComplete: function () {
this.api().columns().every( function () {
var that = this;
$( 'input',this.footer() ).on( 'keyup change clear',function () {
if ( that.search() !== this.value ) {
that
.search( this.value )
.draw();
}
} );
} );
},});
});
谁能给我一些如何实现它的例子?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)