Reputation: 154
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
Upvotes: 3
Views: 2239
Reputation: 325
This question is the only one that shows up, when I try to google this problem. I can see that @lewis4u's problem isn't solved yet.
If anyone else experience this, the following code snippet will allow you to access the model variables.
return datatables()
->of($query)
->addColumn('Action', function($row){
return view('Actions.something', compact('row'));
})
->rawColumns(['Action'])
->toJson();
The key is passing the $row
parameter to the function.
Then you can access $row
in your something.blade.php
view.
Upvotes: 5
Reputation: 154
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
Upvotes: 3