スリムフレームワークで定義されたルートから動的なドロップダウンメニューを作成しようとしています。ここに私の質問があります。何らかの種類の配列から定義されたすべての静的ルートにアクセスする方法はありますか?例えばスリム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>
定義されたルートを変更するときはいつでも、このメニューを変更したいと思います。これを達成する方法はありますか?
しかし、これはおそらく、OPが必要としない 'Route' [objects](https://github.com/slimphp/Slim/blob/3.x/Slim/Route.php)の束を返します。 –
@GeorgyIvanovはい、配列を反復処理するときに、印刷する各オブジェクト内のプロパティを選択することができます。 – Wolf
これは私の望むように動作するようです。おかげでウルフ!すべてのページが 'require_once'でロードされた後、PHPファイルに$ container ['allRoutes'] = $ app-> getContainer() - > router-> getRoutes();'を入れて使用するようにしました'$ routes = $ this-> allRoutes;'ページ内から。このアプローチは大丈夫ですか? –