【问题标题】:Laravel Yajra Datatable if statement on addColumnLaravel Yajra Datatable if 上的 addColumn 语句
【发布时间】:2016-09-21 14:00:26
【问题描述】:

我坚持在我的 addColumn 声明中添加 if 声明:

$inquiries = Inquiry::with('customer')->get();

return Datatables::of($inquiries)
    ->editColumn('created_at', function ($inquiry) {
        return $inquiry->created_at->format('d-m-Y');
    })
    ->editColumn('due_date', function ($inquiry) {
        return Carbon::parse($inquiry->due_date)->format('d-m-Y');
    })
    ->editColumn('status', '@if($status == 0) Pending @elseif($status == 1) Accept @else Cancel @endif')
    ->addColumn('action', function ($inquiry) {
        return '
        <a href="/inquiries/' . $inquiry->id . '" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> View</a>
        <a href="/inquiries/' . $inquiry->id . '/edit" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>
        <a href="#" id="delete-button" data-id="' . $inquiry->id . '" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Delete</a>
        ';
    })
    ->make(true);

我尝试输入@if @endif,但它似乎打印出来而不是成为一个函数

我想根据状态显示操作按钮。

有什么解决办法吗?

谢谢

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    你能做如下的事情吗?

    ->editColumn('status', function ($inquiry) {
        if ($inquiry->status == 0) return 'Pending';
        if ($inquiry->status == 1) return 'Accept';
        return 'Cancel';
    })
    

    【讨论】:

      【解决方案2】:

      以防万一,还有人在寻找:)

      在定义数据表列后,您可以在 javascript 中的视图中执行此操作:

         "createdRow": function (row, data) {
      
                $('td', row).eq('COLUMN_INDEX_HERE').html($('<label>').attr({
                    class:  (data.status == 0) ? 'label label-warning' : ( (data.status == 1) ? 'label label-success': 'label label-danger' )
                }).html((data.status == 0) ? 'Pending' : ( (data.status == 1) ? 'Approved': 'Canceled' )));
      
                  }
      

      【讨论】:

        【解决方案3】:
        return Datatables::of($data)->addColumn('action' , function($data){
            $x='';
            if($data->is_public==0){
                $x.='  <button class="btn btn-inof btn-success">visible</button>';
            }if ($data->is_public==1) {
                $x.='  <button class="btn btn-inof btn-danger**strong text**"> not visible</button>';
            }
             return '
               <button class="btn btn-sm btn-circle btn-danger" 
                id="category_delete_btn" onClick="delete_category('.$data- 
                  >id.')"><span class="fa fa-trash "></span></button>
        
               '.$x.'
             ';
        })->make(true);
        

        【讨论】:

        • 请花几分钟时间为您的答案添加解释,这将对未来的用户有用
        【解决方案4】:

        #要完成的简单代码#

        ->addColumn('action',function($row){
                        $actionBtn='';
        
                        if ($row->status == 'RUNNING') {
                        $actionBtn.=
                        ' 
                            <a class="btnEdit" href="'.route('purchase.purchaseOrderView',["id"=>$row->id]).'" >
                            <i class="fa-solid fa-money-check-pen fa-xl"></i>
                            </a>
                            &#160
                        ';
                        }
                        
                        $actionBtn.=' 
                            <a data-toggle="modal" class="viewSuppliers" id="'.$row->id.'"  data-target="#modal">
                                <i class="fa-solid fa-eye fa-xl"></i>
                            </a>
                            &#160
                            <a  class="deleteSupplier" id="'.$row->id.'">
                                <i class="fa-solid fa-trash-can-list fa-xl"></i>
                            </a>
                        ';
                        return $actionBtn;
                    })
        

        【讨论】:

          猜你喜欢
          • 2021-09-10
          • 1970-01-01
          • 2018-03-03
          • 2019-04-11
          • 1970-01-01
          • 1970-01-01
          • 2016-02-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多