Laravel视图中如何正确注入第二个DataTable实例并调用?
解决方案
1. 检查DataTable类的继承关系
首先确认EodFuturesDataTable类正确继承了Laravel DataTables的基类,这是table()方法存在的前提:
namespace App\DataTables; use Yajra\DataTables\Services\DataTable; class EodFuturesDataTable extends DataTable { // 必须实现核心方法 public function query() { // 返回你的查询构建器实例 } public function columns() { // 返回列定义数组 } }
2. 修改控制器的视图返回方式
原代码中$dataTable->render()仅能自动传递当前DataTable实例,无法同时传入第二个实例。改用view()方法手动传递所有变量:
public function future($property, EodFuturesDataTable $dataTable1, EodBhavDataTable $dataTable) { $dataTable->property = $property; $dataTable1->property = $property; // 手动传递所有需要的变量到视图 return view('pages/apps.symbol.overview_future', compact('property', 'dataTable', 'dataTable1')); }
3. 在视图中渲染两个表格
分别调用两个DataTable实例的table()方法渲染表格:
{{ $dataTable->table() }} {{ $dataTable1->table() }}
4. 添加DataTable初始化脚本
在视图底部添加两个实例的脚本,确保表格交互功能正常:
{{ $dataTable->scripts() }} {{ $dataTable1->scripts() }}
内容的提问来源于stack exchange,提问作者rjcode
相关产品推荐
相关产品推荐

