如何在数据表的闭包中传递两个参数[服务器端]

时间:2019-04-18 11:29:20

标签: jquery laravel-5 datatables yajra-datatable

我需要运行一个函数来检查有效性,因此,我需要在闭包函数上传递两个变量。如果可能的话,我需要知道是否可以在Datatables中使用全局变量。

我要实现的示例:

return Datatables::of($patients)
        ->addColumn('title', function ($patients,$value) {  
               -- *other codes here*
        })->make(true);

如果无法实现上述解决方案,则为示例2。

$value="something";    
return Datatables::of($patients)
        ->addColumn('title', function ($patients) {  
               -- use $value here
        })->make(true);

现在我需要$病人和$值来检查addColumn中的内容。如果我使用上述功能,则会引发错误[以上代码不适用于两个参数]。如果我尝试从外部使用$ value,那么数据表将返回未定义的变量$ value。

我需要可以按以下方式工作的解决方案:

  • 要么让我通过函数传递变量
  • 或可以在addColumn中使用全局变量

这是使用yajra datatbles包的服务器端Laravel数据表。

1 个答案:

答案 0 :(得分:0)

尝试

    //if singgle object

$value="something";    
return Datatables::of($patients)
        ->addColumn('title', function ($patients) use ($value) {  
               return $value;
        })
        ->rawColumns(['tittle'])
        ->make(true);

// if multiple / array like mysql

$value = // DB
return Datatables::of($patients)
        ->addColumn('title', function ($patients) use ($value) {  
               return json_decode($value)[0]->atributes_table;// 0 is array
        })
        ->rawColumns(['tittle'])
        ->make(true);