2

解決策を見つけようとしましたが、ドキュメントや回答に他のバンドルが含まれていることに常に行き詰まりました。動的ルーターのドキュメントにヒントがあります。

「もちろん、通常の Symfony ルートと同様に、いくつかのパラメーターを使用することもできます。パターン、デフォルト、および要件のセマンティクスとルールは、コア ルートとまったく同じです。」

それでおしまい。

...

/foo/{id}/バー

私はそれを成し遂げるためにすべてを試しました(そうではないようです)。

すべての試行で同じ:

可変パターンと子ルートを適用してみました。

use Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route as PhpcrRoute;

$dm = $this->get('cmf_routing.route_provider');

$route = new PhpcrRoute();
$route->setPosition( $dm->find( null, '/cms/routes' ), 'foo' );
$route->setVariablePattern('/{id}');
$dm->persist( $route );

$child = new PhpcrRoute();
$child->setPosition( $route, 'bar' );
$dm->persist( $child );

$dm->flush();

デフォルト値と要件の有無にかかわらず、「/foo/bar」「/foo/*」のみが一致を返しますが、「/foo/1/bar」は「GET /foo/1/bar のルートが見つかりません」というプロンプトを表示します「」。

...

たった今、ほぼ完成しました。

use Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route as PhpcrRoute;

$dm = $this->get('cmf_routing.route_provider');

$route = new PhpcrRoute();
$route->setPosition( $dm->find( null, '/cms/routes' ), 'example_route' );
$dm->persist( $route );

$route->setPrefix( '/cms/routes/example_route' );
$route->setPath( '/foo/{id}/bar' );

$dm->flush();

プレフィックスが「/cms/routes」で名前が「foo」の場合、すべて正常に動作します。でも、ここまできたら、話し名を付けると切り上げられます。

アドバイスありがとう!

4

1 に答える 1