Tree Behavior 将 left 和 right 赋给 null

Tree Behavior gives lft and rght to null

我正在尝试在 table“rubriques”上使用 CakePHP4 中的树行为,但每次我保存条目时,“lft”和“rght”字段在我的数据库中都具有 NULL 值。 .

数据库

CREATE TABLE `rubriques` (
  `id` int(10) UNSIGNED NOT NULL,
  `parent_id` int(10) UNSIGNED DEFAULT NULL,
  `lft` int(11) DEFAULT NULL,
  `rght` int(11) DEFAULT NULL,
  `name` varchar(255) NOT NULL DEFAULT '',
  `slug` varchar(255) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

实体

<?php

namespace App\Model\Entity;

use Cake\ORM\Entity;

class Rubrique extends Entity
{
    protected $_accessible = [
        '*' => true,
        'id' => false,
        'slug' => false
    ];
}

Table

<?php

namespace App\Model\Table;

use Cake\ORM\Table;
use Cake\Validation\Validator;
use Cake\Datasource\EntityInterface;
use Cake\Event\Event;
use ArrayObject;
use Cake\Utility\Text;

class RubriquesTable extends Table
{
    public function initialize(array $config): void
    {
        parent::initialize($config);
        $this->setTable('rubriques');
        $this->addBehavior('Tree');
    }

    public function validationDefault(Validator $validator): Validator
    {
        $validator
            ->notEmptyString('name');
            
        return $validator;
    }

}

控制器

<?php

namespace App\Controller;


class RubriquesController extends AppController
{
    
    public function add(){
        $rubrique = $this->Rubriques->newEntity([
            'name' => 'Try',
            'parent_id' => null
        ]);
        
        $this->Rubriques->save($rubrique);

        die();
    }


}

奇怪的是,当我将数据库 table“rubriques”重命名为“rubrics”(并在我的 Rubriques[ 中更改 $this->setTable('rubrics') =36=],字段“lft”和“right”已正确填充值

看来我通过删除 tmp/cache/models/* 和 tmp/cache/persistent/*

中的文件解决了这个问题