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/*
中的文件解决了这个问题
我正在尝试在 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/*
中的文件解决了这个问题