Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4 Chumper\Datatable包,所有记录都具有相同的ID_Php_Laravel_Datatable - Fatal编程技术网

Php Laravel 4 Chumper\Datatable包,所有记录都具有相同的ID

Php Laravel 4 Chumper\Datatable包,所有记录都具有相同的ID,php,laravel,datatable,Php,Laravel,Datatable,我正在使用Chumper针对Laravel4()的Datatable包,几乎所有的工作都很好。下面是我在控制器类中的函数,它为datatable返回json public function datatable() { $sortingColumns = array( "title", null, null, "link", "modules.title", "priority", "status" ); $orderByColumn = $sortingColumns[ $_P

我正在使用Chumper针对Laravel4()的Datatable包,几乎所有的工作都很好。下面是我在控制器类中的函数,它为datatable返回json

public function datatable() {
    $sortingColumns = array( "title", null, null, "link", "modules.title", "priority", "status" );
    $orderByColumn =  $sortingColumns[ $_POST["iSortCol_0"] ];

    $submodulesQuery = Submodule::select(DB::raw("submodules.*, modules.id, modules.title as module"))
                            ->join("modules", "submodules.module_id", "=", "modules.id");

    return Datatable::query($submodulesQuery)
                ->showColumns(array("title","description", "icon", "link", "module", "priority", "status"))
                ->searchColumns(array("submodules.title", "modules.title"))
                ->orderColumns( $orderByColumn )
                ->addColumn("title", function($submodule) {
                    $route = route("administration.submodules.show", $submodule->id);
                    return "<a href='$route'>$submodule->title</a>";
                })
                ->addColumn("icon", function($submodule) {
                    if( $submodule->icon === NULL || strlen($submodule->icon) === 0 )
                        return "NULL";
                    return "<i class='{$submodule->icon}'></i>";
                })
                ->addColumn("actions", function($submodule) {
                    $id = $submodule->id;
                    return 
                        "<div>
                            <a href='/administration/submodules/{$id}/edit'><button title='Edit submodule' type='button' class='btn btn-primary btn-xs'><i class='icon-pencil'></i></button></a>
                            <button title='Delete submodule' type='button' class='btn btn-danger btn-xs' onclick='deleteSubmodule({$id}); return false;'><i class='icon-trash'></i></button>
                        </div>";
                })->make();
}
公共函数数据表(){
$sortingColumns=数组(“title”,null,null,“link”,“modules.title”,“priority”,“status”);
$orderByColumn=$sortingColumns[$\u POST[“iSortCol\u 0”];
$submodulesQuery=Submodule::select(DB::raw(“submodules.*,modules.id,modules.title作为模块”))
->联接(“modules”,“submodules.module_id”,“=”,“modules.id”);
返回Datatable::query($submodulesQuery)
->显示列(数组(“标题”、“说明”、“图标”、“链接”、“模块”、“优先级”、“状态”))
->搜索列(数组(“submodules.title”、“modules.title”))
->orderColumns($orderByColumn)
->addColumn(“标题”,函数($submodule){
$route=route(“administration.submodules.show”,$submodule->id);
返回“”;
})
->addColumn(“图标”,函数($submodule){
如果($submodule->icon==NULL | | strlen($submodule->icon)==0)
返回“NULL”;
返回“”;
})
->addColumn(“操作”,函数($submodule){
$id=$submodule->id;
回来
"
";
})->make();
}

对于我在末尾添加的名为“actions”的列,我需要获取子模块的ID,以便为编辑和删除操作提供正确的路由。然而,在这一点上,每个作为参数通过的子模块都具有相同的ID=1。在数据库中,情况有所不同。这些ID是不同的,因为它们是主键。这里怎么了?为什么我要为作为参数传递给回调函数的每个子模块对象获取相同的ID。

我在查询中发现了一个问题。我应该把alias放在modules.id列上,因为它会覆盖submodules.id,而且我现在只有一个模块