I want to show condition in datatable serverside like :
if STOK < 5 then STOK will be RED
here is my controller :
<?php
namespace App\Http\Controllers;
use App\Models\ModelProduk;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yajra\Datatables\Datatables;
use Illuminate\Support\Facades\Blade;
class Produk extends Controller
{
public function index(Request $r)
{
if ($r->ajax()) {
$dataProduk = ModelProduk::join('kategori', 'produk.idkat', '=', 'kategori.idkat')
->join('satuan', 'produk.idsat', '=', 'satuan.idsat')
->select('produk.*', 'kategori.namakat', 'satuan.namasat')
->get();
return Datatables::of($dataProduk)
->editColumn('stok', 'produk.stokColumn')
->addColumn('action', 'produk.actionTableIndex')
->toJson();
};
return View('produk.index');
}
}
Problem SOLVED!!
just need add ->escapeColumns([]) in my controller, so my controller look like this :
public function index(Request $r)
{
if ($r->ajax()) {
$dataProduk = ModelProduk::join('kategori', 'produk.idkat', '=', 'kategori.idkat')
->join('satuan', 'produk.idsat', '=', 'satuan.idsat')
->select('produk.*', 'kategori.namakat', 'satuan.namasat')
->get();
return Datatables::of($dataProduk)
->editColumn(
'stok',
'produk.stokColumn'
)
->escapeColumns([])
->addColumn('action', 'produk.actionTableIndex')
->make(true);
};
return View('produk.index');
}
and this is stokColumn.blade.php :
@if ($stok < 5)
<span class="p-1 py-2 bg-red-700 text-white font-bold rounded-lg block hover:bg-slate-500">{!! $stok !!} </span>
@else
{!! $stok !!}
@endif
the result :
Thanks everyone who answer my question
