我有一个多级菜单,一个带排序的子菜单。我需要找出菜单级别,以便我可以将一些字符指定为项目符号。
我想使用选择和添加来列出它
lvl2 -<option>str_repeat (" ", 2)
也很好
lvl3 -<option>str_repeat (" ", 3)
也很好
lvl4 -<option>str_repeat (" ", 4)
也很好
知道如何做到这一点吗?
我在lv2获得了最大
CREATE TABLE `menu` (
`id` int(11) UNSIGNED NOT NULL,
`title` varchar(50) NOT NULL,
`parent` int(11) UNSIGNED DEFAULT NULL,
`page` varchar(45) DEFAULT NULL,
`sort_order` tinyint(4) NOT NULL DEFAULT '100',
`lang` varchar(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `menu` (`id`, `title`, `parent`, `page`, `sort_order`, `lang`) VALUES
(1, 'Home', NULL, 'index.php', 1, ''),
(2, 'Products', NULL, NULL, 2, ''),
(3, 'Services', NULL, NULL, 1, ''),
(4, 'About', NULL, 'about.php', 100, ''),
(6, 'Service 1', 3, 'service1.php', 110, ''),
(7, 'Service 2', 3, 'service2.php', 100, ''),
(8, 'Product 1', 2, 'product1.php', 100, ''),
(9, 'Product 2', 2, 'product2.php', 100, ''),
(10, 'Product 3', 2, 'product3.php', 100, ''),
(11, 'Product 4', 2, 'product4.php', 100, ''),
(12, 'Product 5', 2, 'product5.php', 50, ''),
(14, 'Contact', NULL, 'contact.php', 100, ''),
(15, 'Service 1.1', 6, 'service1.1.php', 100, ''),
(16, 'Service 1.2', 6, 'service1.2.php', 100, ''),
(17, 'Service 1.1.1', 15, NULL, 100, ''),
(18, 'Service 2.1', 7, NULL, 100, ''),
(19, 'Service 2.2', 7, NULL, 100, ''),
ALTER TABLE `menu`
ADD PRIMARY KEY (`id`),
ADD KEY `menu_id` (`parent`);
ALTER TABLE `menu`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
ALTER TABLE `menu`
ADD CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
PHP
public function displayMenu($parent = null)
{
if ($parent == null) {
$query = $this->menuManager->getPublicMenus()->where('parent', null)->order('sort_order');
} else {
$query = $this->menuManager->getPublicMenus()->where('parent = ?', $parent)->order('sort_order');
}
HUWWW