php - Tree Behavior ให้ค่าซ้ายและขวาเป็นค่าว่าง
ฉันกำลังพยายามใช้ Tree Behavior ใน CakePHP4 บนตาราง "rubriques" แต่ทุกครั้งที่ฉันบันทึกรายการ ทั้งสองฟิลด์ "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
];
}
ตาราง
\ n<?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;
}
}
ตัวควบคุม
{- code-4}
สิ่งที่แปลกคือเมื่อฉันเปลี่ยนชื่อตารางฐานข้อมูล "rubriques" เป็น "rubrics" (และเปลี่ยน $this->setTable(\'rubrics\' ) ใน RubriquesTable ฟิลด์ "lft" และ "rght" เต็มไปด้วยค่าอย่างถูกต้อง"
Answer
วิธีแก้ปัญหา:
ดูเหมือนว่าฉันได้แก้ไขปัญหาแล้วโดยการลบไฟล์ใน tmp/cache/models/* และ tmp/cache/persistent/*
Source