是否可以在 addColumn () 中将一些变量发送到 blade 视图?

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

我的问题很简单,是否有可能通过数据表的 yajra 库的 addColumn() 函数将变量发送到 blade 视图,类似于 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();

然后在我的 blade 视图中执行与此类似的操作:

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

我找到了解决办法,也感谢不厌其烦看问题的人

代码:

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

查看(something.blade.php):

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

当我尝试 google 这个问题时,这个问题是唯一出现的问题。看到@lewis4u的问题还没解决

如果其他人遇到过这种情况,可以使用以下代码片段访问模型变量。

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

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

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