問題タブ [twig-extension]
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.
symfony - Twig 拡張機能: データベース クエリ
価格をユーザーの通貨設定に変換するカスタム フィルターを実行する必要があります。そのため、最新の為替レートで毎日更新されるテーブルがあります。
この方法でフィルターを呼び出す予定です {{ '200'|price }} または {{ '200'|price('USD') }}
フィルターは、最初に Cookie からユーザー設定を取得します。
次に、通貨コードに基づいて最新の為替レートを照会し、実際の価格を変換します。
私の質問は、twig 拡張機能でデータベース クエリを実行しても問題ないかということです (フィルターはこちら)。
このフィルターを 1 ページで 10 回呼び出す必要があるかもしれません。それは、さらに 10 個のクエリを意味しますか?
どのようなより良い方法をアドバイスしますか?
events - 組み込みの Twig コントローラーにより、kernel.request イベントが複数回発生する
私の Symfony プロジェクトで、組み込みの Twig コントローラーを使用すると、kernel.request
イベント リスナーが複数回起動するという奇妙な問題に遭遇しました。
私のカスタム イベント リスナーには、特定の条件が存在する場合 (この場合は期限切れのパスワード) にリダイレクト応答を送信するイベント リスナーがあります。リダイレクト ループを防ぐために、既にページにいるかどうかを確認しました。
しかし、それでもリダイレクト ループは止まりませんでした。ログを追加するまで、組み込みコントローラーがkernel.request
イベントを発生させるとは思いもしませんでした (これらの組み込みコントローラーは「サブリクエスト」を送信することで機能するため、後から考えると明らかです)。アラートメッセージをチェックして表示するベース小枝テンプレートによる単一の組み込みコントローラーがあります。
上記を考えると、どうすればよいですか
- 動的コンテンツを基本テンプレート (他のすべてのテンプレートが拡張するもの) に挿入できること、および
kernel.request
イベントリスナーが複数回起動しないようにします。
Symfony は組み込みコントローラーを使用してその動的コンテンツを基本テンプレートに挿入することを提案していますが、これは悪い習慣と見なされますか?
この問題を解決するには、 Twig 拡張機能を作成したほうがよいでしょうか? 私が見た限りでは、Twig エクステンションは通常、クックブックのprice
例のように単純なものにのみ使用されますが、データベースに接続されたより複雑なものでは機能しない理由がわかりません。それを行う方法がわかりません。
例は高く評価されます。
関連する可能性がありますか?: Symfony Controller が複数回実行されました
php - Twig 抽出の翻訳が機能しない
twigi18
拡張機能を使用して PO ファイルを抽出しようとしています。このチュートリアルhttp://twig.sensiolabs.org/doc/extensions/i18n.htmlに従って、サイトを翻訳しようとしています。
問題は、ターミナルで呼び出すときに翻訳を抽出しようとするときです:
再帰検索が$ xgettext --help
表示されないことを確認してください-R
html - Twig 関数で HTML コードを返して挿入する方法は?
Twig を使用していくつかの画像を動的に追加しようとしています。そこで、基本的にサービス名をチェックする新しい Twig 関数を定義しsetImgService
、それに応じて、イメージに応じた HTML コードを返します。
機能コード:
しかし、私が使用するとき
プレーンテキストのような HTML コードを返します。
何か助けてください。
php - Twig で 2 つのデータベース クエリを使用する for ループ
Twigで2つのクエリをループする方法を見つけようとしています。PHPで作成できますが、Twigでも同じことをしています。これは、PHPで通常行う方法です。
上記のコードは正常に動作しますが、Twig では次のループにループしませんが、同じことをループし続けます。上記で使用したように、Twig for ループを使用する方法を知っていれば、親切に助けてください。スリムで Laravel Eloquent を使用してクエリを実行しています。
これは私がしたことです:
コントローラー
景色
最初の行のみを表示し、同じことを繰り返します。
php - Drupal 8 (with twig) 開発
数人の開発者と共に drupal 8 サイトを開発しています。そのため、私たち一人一人が開発マシン上に独自の drupal インスタンスを持ち (さまざまなテンプレート ファイルの状態などでエラーが発生しないようにするため)、次のように設定されています。
- /srv/www/devDudeA/html (インスタンス A ルート)
- /srv/www/devDudeB/html (インスタンス B ルート)
- /srv/www/devDudeC/html (インスタンス C ルート)
- 等々...
これらのインスタンスはすべて同じデータベースに接続されています。twig 拡張モジュール (必要な twig フィルターを提供) を作成してアクティブ化した後、私の同僚の何人かは、私のような同じモジュール ファイルを確実に持っているにもかかわらず、いくつかの例外を受け取ります (モジュールが見つからなかったと言っています)。
異なるホストから同じデータベースを使用する際の問題を知っていますか? キャッシュが問題を引き起こしていると思われます (データベースに「devDudeA」または「devDudeB」を含むいくつかのパス エントリが見つかったためです。
私の意見では、要件を満たす必要があります。
- 各インスタンスの同じディレクトリにある同じモジュール ファイル
- (同じ) DB からの同じモジュール情報
IMHOにはopcacheとmemcacheがあります。統合された twig エンジンには独自のキャッシュもあります。私たちの 1 人はキャッシュを有効にしていて、他の人は有効にしていないというのは問題でしょうか?
私はこれに夢中になっています(Ox)。私に関連する指示はありますか?
よろしくお願いします!