2016-12-26 3 views
0

私はアクティブテーブルに値1、非アクティブテーブル0を追加したusersテーブルを示す簡単なテーブルを持っています。Laravel 5.3 - データ型を使用した条件付きイメージ

私は、次のビュー(jQueryとのDataTableとアプリビューに引き込ま)持っている:私は、データを取得するには、次の方法を持っているweb.phpで

@extends('layouts.app') 
@section('content') 

<div class="panel panel-default" style="padding-left: 2em; padding-right: 2em"> 
    <div class="panel-heading">Users</div> 
    <div class="panel-body"> 
    <table class="datatable" id="dtable" width="90%" align="center"> 
     <thead> 
      <tr> 
      <th>ID</th> 
      <th>Name</th> 
      <th>Email</th> 
      <th>Created at</th> 
      <th>active</th> 
      </tr> 
     </thead> 
     <tbody> 
     </tbody> 
     </table> 
    </div> 
</div> 

    <script> 
    $(document).ready(function(){ 
     $('#dtable').DataTable({ 
      processing: true, 
      serverSide: true, 
      ajax: '{{ route('users.serverSide') }}' 
     }); 
    }); 
    </script> 
@endsection 

を:

Route::get('/users/serverSide', [ 
    'as' => 'users.serverSide', 
    'uses' => function() { 
     $users = App\User::select(['id', 'name', 'email', 'created_at', 'active']); 

     return Datatables::of($users)->make(); 
    } 
]); 

これらはすべてうまくいきますが、アクティブな表の1または0を、サイトアイコンまたはFontawesomeのいずれかを使用して、目盛りまたは十字のいずれかに置き換えます。

誰でも正しい方向を教えてください。私はmySQLでビューを設定できることは知っていますが、それらは遅くなる傾向があります。

答えて

1

columns.renderオプションを使用すると、さまざまな操作の代替コンテンツを作成できます。例えば

$('#dtable').DataTable({ 
    processing: true, 
    serverSide: true, 
    ajax: '{{ route('users.serverSide') }}', 
    columns: [ 
     { data: 'id' }, 
     { data: 'name' }, 
     { data: 'email' }, 
     { data: 'created_at' }, 
     { 
      data: 'active', 
      render: function(data, type, row, meta){ 
      if(type === 'display'){ 
       if(data == 1){ 
        data = '<span class="fa fa-check"></span>'; 
       } 
      } 

      return data; 
      } 
     } 
    ] 
}); 
+0

ありがとう!それらを緑色または赤色にするためにスパンを加えました。 – Jim

関連する問題