【问题标题】:Laravel 4 Chumper\Datatable package, All records have same IDLaravel 4 Chumper\Datatable 包,所有记录都有相同的 ID
【发布时间】:2014-08-28 07:38:05
【问题描述】:

我正在为 laravel 4 (https://github.com/Chumper/Datatable) 使用 Chumper 的 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();
}

对于我在最后添加的名为“操作”的列,我需要获取子模块的 ID,以便为编辑和删除操作提供正确的路径。但是,此时作为参数过去的每个子模块都具有相同的 ID = 1。在数据库中,情况是不同的。这些 ID 是不同的,因为它们是主键。这里有什么问题?为什么作为参数传递给回调函数的每个子模块对象都获得相同的 ID。

【问题讨论】:

    标签: php laravel datatable


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2019-02-24
      • 2016-02-19
      • 2021-06-18
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多