the official documentation 中,提到了以下列:

  • parent_id
  • lft
  • rgt
  • 深度

  • 我在文档中没有找到对它们类型的任何解释。有人可以帮助我并告诉我它们是什么吗?

    如果我只想重新排序项目列表(我不需要任何嵌套),我还想知道它们是否都是强制性的。

    编辑:由于这个问题很受欢迎,我有 updated the documentation with the correct info

    最佳答案

    如果您不使用迁移,重新排序的 id 列应该是 integer 或 INT(10)。

    不幸的是,它们都是强制性的,是的。但是,如果您使用的是非常严格的数据库架构,则可以通过将此方法添加到您的 EntityCrudController(基本上覆盖 Backpack\CRUD\app\Http\Controllers\CrudFeatures\Reorder 中的一个)来消除除“lft”列之外的所有其他架构:

    public function saveReorder()
    {
        $this->crud->hasAccessOrFail('reorder');
    
        $all_entries = \Request::input('tree');
    
        if (count($all_entries)) {
            $count = 0;
    
            foreach ($all_entries as $key => $entry) {
                if ($entry['item_id'] != '' && $entry['item_id'] != null) {
                    $item = $this->crud->model->find($entry['item_id']);
                    $item->lft = empty($entry['left']) ? null : $entry['left'];
                    $item->save();
    
                    $count++;
                }
            }
        } else {
            return false;
        }
    
        return 'success for '.$count.' items';
    }
    

    关于backpack-for-laravel - laravel-backpack 上的重新排序列是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40334901/

    10-12 23:30