是否可以在addColumn()中将某些变量发送到刀片视图?

时间:2019-04-15 19:09:46

标签: laravel yajra-datatable

我的问题很简单,是否有可能通过yajra库的dataTable的addColumn()函数将变量发送到刀片视图,类似于compact()

示例代码:

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

我正在寻找这样的东西:

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

然后在我的刀片视图中执行以下操作:

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

2 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,这也要感谢那些麻烦阅读该问题的人

代码:

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

查看(something.blade.php):

BD::statement(INSERT INTO table (SELECT));

答案 1 :(得分:0)

当我尝试用谷歌搜索这个问题时,这个问题是唯一出现的问题。我可以看到@lewis4u 的问题还没有解决。

如果其他人遇到这种情况,以下代码片段将允许您访问模型变量。

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

关键是将 $row 参数传递给函数。

然后您可以在 $row 视图中访问 something.blade.php