問題タブ [symfony-routing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ルートにクエリ文字列がある場合の Symfony の ResourceNotFoundException
奇妙な問題
したがって、私の管理バンドルには、次のようなルートがあります。
これは、次のページにアクセスするときにうまく機能します/media
クエリ文字列をルートに追加する場合を除きます。このように: /media?q=searchTest
. 実際、管理バンドルの任意のルートに対してこれを行うと、常に返されますResourceNotFoundException
これがプレーンテキストのスタックトレースです
POST は機能しますが、クエリ文字列は何らかの理由で機能しません。
何か案は?
symfony - 変数パスを定義済みパスで上書きする
route のページを作成するために fos userbundle を使用しています/profile
。他のユーザーのプロファイルも表示できるようにしたいので、独自のコントローラーを作成して/profile/{username}
.
私が今抱えている問題は、 fos userbundle path を使用できない/profile/edit
ことです。それはパスを示していますroute:debug
ルート /profile/edit を例外にする方法はありますか?
ここに私のコントローラーがあります:
ありがとうございます:)
php - Symfony2 ルーティング前のリダイレクト
高トラフィック/高 seo 重視のWebを開発しています。現在、アクションの開始時にリダイレクトを行っていますが、少し遅いです。
ルーティングの前にフックしてリダイレクトを行う方法はありますか (URL が 301 かどうかを知るために Redis クエリを実行しました)。たぶん、Symfonyの直前にそれを行っているのかもしれません。
php - URI 値を使用してルーターのプレースホルダーをマップする
これを説明する方法はありませんので、お手柔らかにお願いします。
ルーターは uri 変数キーを保持します
ブラウザのアドレス バーの URI
ルーターのプレースホルダー変数を URI 一致値にマップするコードを作成するにはどうすればよいですか。例えば
ご理解いただけましたら、正しいリソースにリダイレクトしていただけますでしょうか。
php - symfony2 でルーティングを確認する
symfony を学びたいと思い、小さなアプリケーションの作成を開始しました。ルートについて質問です。だから、私は自分のプロジェクトにルートを持っています:
/admin/homepage
、/admin/news
、admin/galery
いいえ、 url に書き込むと/admin
、このルートは存在せず、エラーが発生しますNo route found for "GET /admin/"
。たとえば、ルートが存在しないかどうかを確認し、別のルートにリダイレクトする方法はありますか? 事前にThxと私の英語で申し訳ありません私のルート:
php - Symfony 3はすべてのルートを現在のロケールバージョンにリダイレクトします
私はsymfonyアプリケーションに取り組んでおり、ユーザーがどのページにいてもページのロケールバージョンに移動することが目標です。
たとえば、ユーザーがホームページの「/」に移動すると、「/en/」にリダイレクトされます。
_locale
それらが「/admin」ページにある場合、プロパティがルートから設定されるように、「/en/admin」にリダイレクトされます。
また、ユーザーのブラウザから /admin にアクセスする場合はロケールを決定する必要があります。これは、ロケールが決定されていないため、リダイレクト先のページがわかるためです。
現在、テスト中のため、デフォルトのコントローラーは次のようになっています。開発モードとプロファイラーを使用して、翻訳が正しく機能していることをテストしています。
この現在の方法では、ユーザーがそこに移動すると「/」に留まりますが、「/en/」にリダイレクトしたいと考えています。これは、/admin や /somepath/pathagain/article1 (/en/admin 、 /en/somepath/pathagain/article1) などの他のページでも機能するはずです。
どうすればいいですか?
私が読んだ参考文献は役に立ちませんでした:
Symfony2 ルーティングでデフォルトのロケールを使用する (1 つの言語に対して 1 つの URL)
ルーティングにおける Symfony2 のデフォルトロケール
::アップデート::
私は自分の問題を解決していませんが、より効率的にするためのいくつかのトリックを学びました。
DefaultController.php
構成.yml
parameters の下の value に注意してくださいapp.locales: en|es|zh
。これは、今後さらに多くのロケールをサポートする予定がある場合に、ルートを作成するたびに参照できる値です。これらのルートは、好奇心旺盛な人のために、英語、スペイン語、中国語の順です。注釈の DefaultController では、"%app.locales%"
構成パラメーターを参照する部分です。
私の現在の方法の問題は、/ admin に行くことです。たとえば、ユーザーを /{browsers locale}/admin にリダイレクトしません。これは、すべてを整理するためのよりエレガントなソリューションになります...しかし、少なくともルートは機能します。まだより良い解決策を探しています。
****アップデート****
Athlan の回答である下の回答 (ロケールと要件をすべてのルートに追加 - Symfony2 )として、ここで回答を見つけた可能性があると思います。彼の指示が私には十分に明確ではなかったため、symfony 3 でこれを実装する方法がわかりません。
この記事も役立つと思います ( http://symfony.com/doc/current/components/event_dispatcher/introduction.html )
php - ユーザーはフォームを送信しますが、登録またはログインするまで保存しません
ユーザーが単一のページに入力するフォームが多数ありますが、ユーザーが投稿した後、コントローラーはフォームが有効かどうかを確認し、ユーザーが既にログインしているかどうかを確認し、情報を保存します。
助けが必要
ユーザーがログインしていない場合は、登録ページにリダイレクトしてサインアップし、サインアップ後に自動ログインすると、同じコントローラーに投稿された値が返され、保存できるようになります。
$form->isValid && !$this->getUser()
次に、セッションに保存されたこのフォームの値を使用して、ユーザーをサインアップ ページにリダイレクトしますか?- ユーザーがサインアップまたはログインした後、以前のコントローラーに戻って (それ以上のアクションは必要ありません)、以前に送信されたフォームを自動保存する必要があります。以来
$form->isValid()
混乱しています。フォームの値をセッションに保存してリダイレクトする必要がありますか? モデル値を適切に保存しますか?
また、ログイン後に post メソッドで同じページに戻るように Symfony に指示しながら、ユーザーを登録ページにリダイレクトするにはどうすればよいですか。