問題タブ [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.

0 投票する
11 に答える
23841 参照

php - Symfony2:「GET /lucky/number」のルートが見つかりません

私は(初心者として)チュートリアルを開始し、すべてがうまくいくまで:

http://symfony.com/doc/current/book/page_creation.html#creating-a-page-route-and-controllerページの作成: ルートとコントローラー

というファイルを作成しました。/var/www/html/[projekt]/src/AppBundle/Controller/LuckyController.php

しかし、http://[Server-IP]:8000/app_dev.php/lucky/numberを開くと、常に 404 が返されます。

ルーティング.yml

コントローラ

どこが間違っているのかわかりません...

エラー - キャッチされていない PHP 例外 Symfony\Component\HttpKernel\Exception\NotFoundHttpException: /var/www/html/[Symfony-Folder]/app/cache/dev/classes で "GET /lucky/number" のルートが見つかりません。 php行2061

0 投票する
2 に答える
398 参照

symfony - 認証に基づいて 1 つの URL を 2 つのコントローラー アクションにルーティングする

私はSymfonyに少し慣れていませんが、簡単に説明できる状況があります:

公開ホームページと非公開ホームページがあります。URL「/」でこれらの両方にアクセスできるようにしたいと思います

認証されていない人がアドレス www.example.com/ にアクセスした場合、それらを PublicController::indexAction() にルーティングしたいと思います

認証されたユーザーがアドレス www.example.com/ にアクセスすると、Privatecontroller::indexAction() にルーティングされるようにしたいと思います。

これは可能ですか?

(symfony 2.7 ところで)

0 投票する
3 に答える
260 参照

php - 既存のルートから新しいルートにリダイレクト

ユーザーがログインしておらず (FOSUser および SonataAdmin で動作)、http://domain.com/app_dev.php(dev) またはhttp://domain.com(prod) のいずれかを呼び出す場合にリダイレクトしようとしています。両方の場合にリダイレクトしたい/loginので、次の場所にこの構成を書きましたapp/routing.yml:

それは機能しますが、コントローラーにこれがあるため、問題があります。

次に、例のように(dev) または(prod)brandのようなリンクを使用してルートを呼び出そうとすると、にリダイレクトされました。私の最善のアイデアは、コードを次のように変更することです。http://domain.com/app_dev.php/?email=7x-xRFClkjwhttp://domain.com/?email=7x-xRFClkjw/login

そして、その機能の代わりに新しいルートを使用してリダイレクトします(これは主に、ユーザーが以前に共有されたリンクを含む大量の電子メールをすでに持っているためであり、それを変更することはできません)。しかし、私がこれを書いた場合、私はこのルールをどのように書き込めばよいかわかりません:/bp/routing.yml

リダイレクトループになってしまいます。/loginまた、適切なドキュメントが見つからないため、デフォルト ルートの設定方法を変更することもできます。この投稿の背後にある大きなアイデアは、 のデフォルト ルートを設定することです/。これについて何か助けてもらえますか?

追加情報として、これは私のsecurity.ymlファイルの一部です:

アップデート

実際、@emmanuel-hdz-díaz のコードは別のアイデアを与えてくれます。コントローラーでこれを行うだけで、カーネル リスナーを作成したり、多くのコードを追加したりする必要はありません。

ユーザーを/loginルートにリダイレクトできました。

0 投票する
2 に答える
176 参照

php - コントローラーでルートをアノテーションとして定義する Symfony2

専門家の提案が必要です。パフォーマンスと標準の点で理想的なものは何ですか?

1) Symfony 基本チュートリアルで提案されているように、src//Resources/config/routing.yml ですべてのルートを定義しますか?

また

2)コントローラーでルートを注釈として定義しますか?

どちらも正しく、正常に動作しているようです。私の質問は、どちらがパフォーマンスに優れており、symfony の標準により近いものであるかを正当化することです。

0 投票する
1 に答える
426 参照

php - Symfony CMF 動的ルーターの「一致できませんでした」ログ

私は、Symfony CMF ルーティング バンドル 1.3 を使用する Symfony 2.6 アプリケーションを持っています。ここでは、通常の symfony ルートとカスタム ストア用の動的ルートを組み合わせて使用​​します (とりわけ、以下の例では動的ルーターの 1 つに焦点を当てています)。

問題は、ルーターが正常に機能しているにもかかわらず、ルーターが動的ルートに一致しないという無限のログを取得していることです。

最も一般的なエントリは次のとおりです。

たまに見かけます

これらのログを無効にするか、動的ルーターの構成/セットアップを変更して、ルートが実際に失敗した場合にのみこれらのエラーが表示されるようにする方法はありますか?

ここに私の設定/セットアップがあります:

そして、実際の動的ルーターはに基づいています

動的ルートを使用するより良い方法がある場合は、それを聞きたいです:)

0 投票する
3 に答える
1154 参照

php - symfony、動的ルーティング

独自のルートを持つ複数のスキン/テンプレートを含む symfony プロジェクトがあります。正しいセットアップのアイデアはありますか?

  • スキンとアセットだけでなく、一部のスキンに存在する可能性のあるサービスも含まれているため、すべてのスキン/テンプレートは独自のバンドルです。
  • ホスト名がスキンを決定します。
  • カスタム RouteLoader を使用して、ターゲット バンドルの route.yml をロードします。

カスタム RouteLoader は仕事をしますが、生成されたルートはキャッシュされています。私の知る限り、ルートのキャッシュを防ぐ方法はありません。

いくつかの提案は次のとおりです。

  • /{dynamic} ルートを作成するため、手動でルートを形成します..しかし、ルーターのその機能を捨てたり、プロジェクト全体をリファクタリングしたりしたくありません..
  • ルートの前にテンプレート識別子を付けます。これには、すべての route.yml ファイルをロードする必要がありますが、パスが共有されているため、これは不可能です。

誰?複数のプロジェクトを行うことはできません。スキンの量は 20 ~ 30 ~ 程度です。

このセットアップの理由は、Content-as-a-Service .. サービスのターゲットであり、複数のクライアントがプロジェクトをプラットフォームとして使用し、それらの設定によって使用されるテンプレートが決定されるためです。

0 投票する
1 に答える
234 参照

symfony - カスタム Symfony CMF 動的ルーターの実装

デフォルトのコントローラ ルーティングと組み合わせてダイナミック ルーティングを使用したいと考えています。受信リクエストのURLをチェックする列「url」を持つテーブル「ページ」があります。この表に URL が見つからない場合は、デフォルトのコントローラ ルートを確認する必要があります。

ChainRouter は次の順序で設定する必要があります。

  1. リクエスト URL を「ページ」テーブルの「url」列と一致させてみてください。そのテーブルのデータを使用して、応答を返すためにどのテンプレートを使用すればよいかがわかります。
  2. デフォルトのコントローラ ルートを確認する

ページテーブルを検索するカスタム動的ルーター実装を作成する必要があると思います。これは次の構成になります。

次に、カスタム動的ルーティングの実装を使用します。しかし、どうすればそれを行うことができますか?

0 投票する
0 に答える
32 参照

symfony - Symfony2 のルーティング構造 "/" と "/news/page/{page}"

2 つのルート「/」と「/news/page/{page}」を組み合わせて、スタート ページを表示するためだけに同じデフォルトの 2 つのルートを必要としないようにする方法はありますか? knpmenubundle を使用していますが、1 つの要素に 2 つのルートがある場合、メニュー項目をアクティブとしてマークする際に問題が発生します。

0 投票する
2 に答える
730 参照

symfony - コントローラを実行する前のカスタム認可チェック

rolesメニューのレンダリング中にメニュー項目の権限をチェックするための新しいオプションをルーティング設定に追加しました。
対応するコントローラーを実行する前に、権限チェックのオプションを使用できれば素晴らしいと思います。

例:

コントローラー自体を実行する前に、ユーザーが役割に基づいてコントローラーにアクセスできるかどうかを確認する必要があります。
それはどのように可能ですか?何か案は?

更新
なぜrolesオプションが必要なのですか?
プロジェクトには4つの異なる役割と多くのルートがあります。一部のルートは保護されており、特定の役割を持つユーザーにのみ表示されます。
今のところ、すべての承認チェックはコントローラー内でdenyAccessUnlessGranted()メソッドによって実行されます。また、メニューの構築にはKnpMenuBundle
を 使用しています。また、メニューのレンダリング中に、現在ログインしているユーザーの各項目のアクセシビリティを確認する必要があります。ユーザーがアイテムへのアクセス権を持っていない場合、そのアイテムは除外され、ユーザーには表示されません。 ユーザーがアイテムにアクセスできるかどうかを確認するために、前述のオプションを追加しました。ここでは、ルートにアクセスできるロールを定義します。そして、このオプションは、チェックインとまったく同じロールを定義します
rolesdenyAccessUnlessGranted(). そして、私はすでにこれらの役割設定を持っているので、コントローラーの承認チェックに使用して冗長コードを削除しないのはなぜだと思います。