datatables, join same table?

datatables, join same table?

你好,我正在使用 laravel 的数据 table,我有以下疑问...

$query = DB::table('categories')->select('id','name','parent_id')->orderBy('id');

我有这个代码 returns 我所有的类别...

columns: [
        { data: 'id' },
        { data: 'image',
      render: function ( data, type, row ) {
        return data ? '<img src="/images/product/'+data+'" height="80" width="80">' : '<img src="/images/product/noproduct.jpg" height="80" width="80">'; 
 
      }
    },
        { data: 'name' }, // used for sorting so will hide this column
        { data: 'parent_id'}
      ],

还有另一个代码向我显示了带有类别的数据table,但这里出现了困境,我该如何在 parent_id 中而不是显示 ID ... 它显示了名字,我应该加入相同的 table 吗?但在 none 中显示 parent_id

的名称

编辑:同样的事情总是发生在我身上,我 post 并找到了解决方案,但现在出现了另一个问题。

$query = DB::table('categories as c')->join('categories as k','c.parent_id','=','k.id')->select('c.id','c.name','k.name as namex')->orderBy('id');

这是正确的方法吗?

它有一个失败...没有parent_id的类别...没有出现如何解决?

只需使用 leftJoin,这样没有 parent_id 的记录也会被提取,否则,记录将被限制为具有父

$query = DB::table('categories as c')
            ->leftJoin('categories as k','c.parent_id','=','k.id')
            ->select('c.id','c.name','k.name as namex')
            ->orderBy('id');