symfony 2でダイナミックルートを設定する必要があります。ここで、slugパラメータはurlに追加され、データベースのページに関連しています。各ページには、独自のスラッグとそのコンテンツがデータベースに格納されています。記事Advanced Routingを読んでいますが、それはsymfonyの古いバージョンです。新しいバージョンの場合は、ParamConverterと同様の仕事をしているようです。これは教訓ベースのルーティングを実装する正しい方法ですか、本当のカスタムルータクラスを書くべきですか?doctrineに基づいたカスタムsymfonyルーティング
答えて
私はParamConverterを使用します。はい。
// routing.yml
foo_route:
pattern: /{slug}/
defaults: { _controller: FooVendorBundle:Foo:view }
// FooVendorBundle/Controller/FooController.php
public function view(FooEntity $foo)
{
// $foo will be an instance of FooEntity
}
通常、中:つまり、それはルートのプレースホルダと同じ名前のフィールドでtypehintedオブジェクトをルックアップする方法を知っている - FrameworkExtraBundleに付属して最も簡単なケースを扱うことができ、デフォルトDoctrineParamConverterコントローラの引数リストには、$slug
という変数があり、ルートによってキャプチャされた{slug}
の内容からデータが取り込まれます。しかし、ParamConverterでは、あなたがFooEntity
クラスを要求していることを認識し、キャプチャされたslug
値でそのエンティティを見つけようとし、$foo
変数にそのエンティティを設定しようとします。
デフォルトParamConverterは、もちろん、唯一実際にがエンティティにを存在するプロパティ調べることができることに制限されている:FooEntityはslug
という名前のフィールドを持っていない場合、ルックアップは失敗し、例外がスローされますが。私が言ったように、これは基本的なユースケースの大半を処理します。リクエストパラメータの詳細な変換が必要な場合は、いつでも独自のパラメータを記述することができます。
スラッグでも普通のページでも動的ページを処理する必要がある場合コントローラでは、各ページタイプ(静的および動的)を処理するカスタムルータクラスを使用する必要がありますか? – Stefano
私はsymfonyを本当に愛し始めています。 +1 –
- 1. Symfony - サブドメインに基づくルーティング?
- 2. symfony/doctrineカスタム検証
- 3. symfonyバンドルの設定に基づいてdoctrineマッピングをロード
- 4. symfony/Doctrine:カスタムfind()関数
- 5. laravelルーティングに基づいて
- 6. アトリビュートに基づいたangularjsでのルーティング
- 7. doctrine:エンティティDateTime年齢に基づくsymfonyメソッドの呼び出し
- 8. Symfony 2.8 SyliusRecourceBundleルーティング基準
- 9. URLに基づくHAProxyルーティング
- 10. 条件に基づいたカスタムmdチップ
- 11. Doctrine 2 - ACLに基づいて読み込まれたエンティティ
- 12. JSONレスポンスに基づいた動的ルーティングangularJS
- 13. ブール値に基づいたangularJSでのルーティング
- 14. カスタムSymfonyコマンドでDoctrineを使用していますか?
- 15. リクエストuriホストに基づくルーティング
- 16. フォーム入力に基づくAngularJSルーティング
- 17. ユーザー名に基づくExpress JSルーティング
- 18. データベースエントリに基づく動的ルーティング
- 19. GETパラメータに基づくzendframeworkルーティング
- 20. Dokkuの経路に基づくルーティング
- 21. Rails 3 regexに基づくルーティング
- 22. ASP.NET MVC3:サブドメインに基づくリクエストのルーティング
- 23. Symfony 1.4、Doctrine(Doctrine :: HYDRATE_ARRAY non-multiple)
- 24. Doctrineを使ったsymfonyクエリ
- 25. Symfony Doctrineディセーブルキャッシュ
- 26. symfony doctrine multiple count
- 27. Symfony Doctrine Group
- 28. Symfony&Doctrine 2 /スピードアップクエリ
- 29. Symfony VarDumper Doctrineサブオブジェクト
- 30. symfony 2.8 doctrine
動的ルートの意味を説明できますか? – Problematic
確かに、私は、データベース内の各ページの内容を「url」として機能するテーブル内のスラッグ列と共に持つことを意味します。私はdomain.com/testテストの数字がスラッグでダイナミックです – Stefano
あなたがスラッグについて話しているなら、あなたはSymfony2のドキュメント:http://symfony.com/doc/current/book/routingで必要なものをすべて手に入れてください。 html – Nanocom