Search code examples
javascriptphplaraveldatatablesyajra-datatable

Yajra/Jquery datatable how to exclude records based on condition


How can I exclude data based on my condition on the addColumn function?

What I tried is this but it will include records that are > 0

    ->addColumn('total', function ($row) {
        $arr = array(abs($row->fba_fee_count),abs($row->referral_fee_count));
        if($arr > 0) {
            return array_sum($arr);
        }

On the frontend side, I also tried

    "createdRow": function( row, data, dataIndex ) {
        if ( data.total === 0 ) {
            $(row).hide();
        }
    },

Now it hides the data but the pagination is showing for all the data. As you can see in the image below. I got 3 records but the pagination is for all the records.

enter image description here

Anyone can help? Thanks in advance.


Solution

  • I think better you can restrict in query if sum of total is greater than zero .

    $result= ModelName::havingRaw('(referral_fee_count+fba_fee_count)>0')->get();
    

    or

    $result=ModelName::having(DB::raw('referral_fee_count+fba_fee_count'),'>',0)->get();
    

    Also for yajra datatable no need to use get() .