Search code examples
laravelyajra-datatable

Is it possible to send some variable to the blade view in an addColumn ()?


My question is simple if there is any possibility of sending a variable to the blade view through the addColumn() function of the yajra library for datatables, something similar to compact()

Example code:

return datatables()
  ->of($query)
  ->addColumn('Action','Actions.something')
  ->rawColumns(['Action'])
  ->toJson();

I'm looking for something like this:

$data = 'foobar';
return datatables()
  ->of($query)
  ->addColumn('Action','Actions.something', compact('data'))
  ->rawColumns(['Action'])
  ->toJson();

Then in my blade view do something similar to this:

@if($data == 'foobar')
    something...
@else
    something...
@endif

Solution

  • I found a solution, also thanks to the one who took the trouble to read the question

    Code:

    $data = 'foobar';
    return datatables()
           ->of($query)
           ->addColumn('Action', function() use ($data){
               return view('Actions.something', compact('data'));
           })
           ->rawColumns(['Action'])
           ->toJson();
    

    View (something.blade.php):

    @if (isset($data))  
        @if($data == 'foobar')
            <span>true</span>
        @else
            <span>false</span>
        @endif
    @endif