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:カスタムfind()関数
- 4. Doctrine 2 - ACLに基づいて読み込まれたエンティティ
- 5. ブール値に基づいたangularJSでのルーティング
- 6. リクエストuriホストに基づくルーティング
- 7. データベースエントリに基づく動的ルーティング
- 8. Rails 3 regexに基づくルーティング
- 9. ASP.NET MVC3:サブドメインに基づくリクエストのルーティング
- 10. Symfony 1.4、Doctrine(Doctrine :: HYDRATE_ARRAY non-multiple)
- 11. symfony doctrine multiple count
- 12. Rails 3 - フォーム、アクションに基づいたカスタム送信ボタン?
- 13. Apache Camelのサイズに基づいてファイルをルーティングする方法
- 14. CELERY_ROUTES - タスク名に基づいてルーティングする方法
- 15. DoctrineとSymfonyのベストプラクティス
- 16. Symfony Doctrine sfDoctrinePagerとLIMIT
- 17. symfonyのとDoctrine:クロスデータベースリレーション
- 18. Symfony Admin Generator Doctrine executeCreate
- 19. DateTimeに基づくカスタムGroupDescriptionの作成
- 20. カスタム注釈に基づくバインド
- 21. Symfonyルーティングの質問
- 22. symfonyのルーティング問題
- 23. symfony 2モデル別ルーティング
- 24. テーブルデザインに基づいたモデリングクラス
- 25. sf_formatを使ったsymfony 1.4ルーティング
- 26. Symfony 2 + Doctrine 2 +継承
- 27. mysql_real_escape_string doctrine(symfony)用ですか?
- 28. Symfony 1.4 DoctrineプロジェクトのXMLスキーマ
- 29. Symfony Doctrineの行番号クエリ
- 30. Magento - カスタム基準に基づく注文限度の実装
動的ルートの意味を説明できますか? – Problematic
確かに、私は、データベース内の各ページの内容を「url」として機能するテーブル内のスラッグ列と共に持つことを意味します。私はdomain.com/testテストの数字がスラッグでダイナミックです – Stefano
あなたがスラッグについて話しているなら、あなたはSymfony2のドキュメント:http://symfony.com/doc/current/book/routingで必要なものをすべて手に入れてください。 html – Nanocom