私は自分のルートを次のように定義しました:
$app->get('/about', function ($request, $response, $args) {
return $this->view->render($response, 'about.twig');
})->setName('about.page');
次のような名前でルートリンクを取得することに興味があります。{% get_route('about.page') %}
どうすればこれを達成できますか?
私は自分のルートを次のように定義しました:
$app->get('/about', function ($request, $response, $args) {
return $this->view->render($response, 'about.twig');
})->setName('about.page');
次のような名前でルートリンクを取得することに興味があります。{% get_route('about.page') %}
どうすればこれを達成できますか?
Slim3にはそのpath_for(name)
機能があります。例:
{{ path_for('about.page') }}
参照: http://www.slimframework.com/docs/features/templates.html
slim/twig-view
コンポーネントは、カスタム関数を Twig テンプレートに公開しpath_for()
ます。この関数を使用して、Slim アプリケーション内の任意の名前付きルートへの完全な URL を生成できます。このpath_for()
関数は 2 つの引数を受け入れます。
- 1 ルート名
- 2 ルートのプレースホルダー名と置換値のハッシュ
注:path_for
はルータの機能を使用します。$router->pathFor(..)
使わない理由{%
{%
は twig の制御構造体であり、制御構造体Message: Unknown "path_for" tag in "base.twig" at line XX.
のようなタグが定義されていないため表示されるため、twig はこれが実際に関数であることを知りません。したがって、 twig で出力構造体を使用します{{
。