我想从Slim框架中定义的路由生成一个动态的下拉菜单,这里是我的问题 - 有没有办法从某种数组访问所有定义的静态路由?如何从Slim 3 php框架访问所有路线?
举例来说,如果我定义我的路线是这样的:
// Index page: '/'
require_once('pages/main.php');
// Example page: '/hello'
require_once('pages/hello.php');
// Example page: '/hello/world'
require_once('pages/hello/world.php');
// Contact page: '/contact'
require_once('pages/contact.php');
每个文件都是一个单独的页面,看起来像这样
// Index page
$app->get('/', function ($request, $response, $args) {
// Some code
})->setName('index');
我想访问所有这些定义路由从某种数组,然后使用该数组在我的模板文件中创建一个无序的HTML列表。
<ul>
<li><a href="/">Index</a></li>
<li><a href="/hello">Hello</a>
<ul>
<li><a href="/hello/world">World</a></li>
</ul>
</li>
<li><a href="/contact">Contact</a></li>
</ul>
每当我改变定义的路线,我希望这个菜单随它改变。有没有办法做到这一点?
但它返回一堆'Route' [对象](https://github.com/slimphp/Slim/blob/3.x/Slim/Route.php),这可能不是OP的需要。 –
@GeorgyIvanov是的,但您可以在迭代阵列时挑选要打印的每个对象内的属性。 – Wolf
这似乎是我想要的。谢谢沃尔夫!我已经在所有页面加载了“require_once”之后,在PHP文件中放置'$ container ['allRoutes'] = $ app-> getContainer() - > router-> getRoutes();'然后使用从页面内$ path = $ this-> allRoutes;'。这种方法好吗? –