我试图按照以下步骤操作: http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/hierarchical-data.html
如果我错了,请纠正我。首先,我在AppBundle / Model route中创建了这个类:
namespace AppBundle\Model;
class Item extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 255);
}
public function setUp()
{
$this->actAs('NestedSet');
}
}
然后我在这样的控制器中使用它:
$treeObject = Doctrine_Core::getTable('Category')->getTree();
我有两个问题: - 我在哪里定义类别表以及如何定义 - 使用前面的代码我遇到了这个错误:尝试加载类" Doctrine_Core"来自命名空间" AppBundle \ Controller \ Admin
请问好吗?感谢
答案 0 :(得分:1)
Doctrine拥有Symfony的捆绑包,允许以YML存储所有配置数据。 https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html - 它有"树扩展"这正是你正在寻找的。 p>
答案 1 :(得分:1)
Doctrine_Record
和Doctrine_Core
类是Doctrine
版本中1.x
的一部分,Symfony2
正在使用Doctrine 2.x
,这与{1.x
完全不同1}}版本。例如Doctrine 2.x
不使用Active Record方法,这就是您要使用的方法。在Doctrine 2
模型类(实体)中,不要扩展任何类
检查这段doc如何在Symfony2中使用Doctrine2
答案 2 :(得分:0)
好的,我按照以下步骤操作:
不要忘记设置扩展程序的配置,在这种情况下为tree
中config.yml
设置stof_doctrine_extensions:
orm:
default:
tree: true
:
-- ----------------------------
-- Table structure for appointment
-- ----------------------------
DROP TABLE IF EXISTS `appointment`;
CREATE TABLE `appointment` (
`appId` tinyint(10) NOT NULL AUTO_INCREMENT,
`startDateTime` datetime DEFAULT NULL,
`duration` time DEFAULT NULL,
PRIMARY KEY (`appId`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of appointment
-- ----------------------------
INSERT INTO `appointment` VALUES
('1', '2015-05-04 16:15:00', '00:14:00'),
('2', '2015-05-12 08:15:00', '05:54:00'),
('3', '2015-05-12 08:35:00', '02:14:00'),
('4', '2016-05-04 08:11:00', '04:11:00'),
('5', '2015-05-13 19:30:00', '02:50:00');
SELECT DISTINCT x.*
FROM appointment x
JOIN appointment y
ON y.startdatetime < x.startdatetime + INTERVAL TIME_TO_SEC(x.duration) SECOND
AND y.startdatetime + INTERVAL TIME_TO_SEC(y.duration) SECOND > x.startdatetime
AND y.appid <> x.appid;
appId startDateTime duration
3 12.05.2015 08:35:00 02:14:00
2 12.05.2015 08:15:00 05:54:00