doudouchan5830 2015-03-03 10:04
浏览 85
已采纳

如何在laravel 4.2的数据表中添加编辑/删除按钮?

I used laravel 4.2 billam Server side Datatable, and now it' works. But I can't add Edit and Remove Button in this datatable.

View page :

 <script type="text/javascript">
var oTable;
$(document).ready(function() {
    oTable = $('#tasks').dataTable( {
        "sPaginationType": "bootstrap",
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "{{ URL::to('/task') }}"
    });
});

Route :

Route::get('/task',function(){
$posts = Campaigns::select(array('title','created_at','status'));
 return Datatables::of($posts)
 ->make();
});

Now how can I add Delete and edit button ? I am follow there documentation from here that not works for me.

Documented Example 2: Adding and editing columns

->add_column('operations', '<a href="{{ URL::route( \'admin.post\', array( \'edit\',$id )) }}">edit</a>
                <a href="{{ URL::route( \'admin.post\', array( \'delete\',$id )) }}">delete</a>
            ')
->edit_column('status', '{{ $status ? 'Active' : 'Passive' }}')
->edit_column('ownername', function($row) {
    return "The author of this post is {$row->ownername}";
})

But how can I use blade structured code in route or controller? it's make little confusion..

  • 写回答

1条回答 默认 最新

  • ds20021205 2015-09-26 09:10
    关注

    To add a link to a datatables column from the controller you can do something like this:

    ->addColumn('actions', function ($data) {
                    return "<a class='btn btn-xs btn-success' href='/management/members/$data->id/view'>View</a>";
                })
    

    $data is the query after the datatables wrapper. So in conecpt of the controller method, this will be used similar to this:

    /**
     * Members list data.
     *
     * @param Datatables $datatables
     * @param MemberRepository $repository
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function getIndexData(Datatables $datatables, MemberRepository $repository)
    {
        $members = $repository->getMemberListForManagement();
    
    
        return $datatables->usingQueryBuilder($members)
            ->editColumn('created_at', function ($data) {
                return date('d F Y', strtotime($data->created_at));
            })
            ->editColumn('is_banned',
                '@if($is_banned)
                    Yes
                @else
                    No
                @endif')
            ->addColumn('actions', function ($data) {
                return "<a class='btn btn-xs btn-success' href='/management/members/$data->id/view'>View</a>";
            })
            ->removeColumn('id')
            ->make(true);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计