2016-09-21 1 views
1

에 if 문 :Laravel Yajra DataTable을하는 addColumn

$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을 넣어 해봤지만 그것을 밖으로 인쇄 대신 기능

가 나타납니다

상태에 따라 작업 버튼을 표시하고 싶습니다.

모든 솔루션?

감사합니다.

답변

0

다음과 같이 할 수 있습니까?

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

그냥 넣다, 사람이 여전히 datatables의 열을 정의한 후 :

당신은 자바 스크립트에서이 같은 귀하의 의견에서 그것을 할 수

찾고 :

"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'))); 

      }