問題タブ [knpmenubundle]

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 投票する
1 に答える
755 参照

php - KnpMenu で RouteVoter を削除する

エクストラネットの各バンドルは、独立したアプリケーションです。私のメニューにはすべてのアプリがリストされており、実際のルートプレフィックスに応じて現在のアプリをマークするのが好きです.

最初に base.html.twig の twig コード:

ビルダー関数:

私の BundleVoter クラスは正しく動作し、現在のメニューが見つかった場合は true を返します。しかし、HTML では、現在の要素に「アクティブな」クラスが含まれることはありません。

KnpMenuBundle をもう少し読み、Knp\Menu\Matcher クラスにデバッグ コードを追加しました。

そして、この出力を得ました:

神秘的な RouteVoter はどこから来たのですか? 現在の要素の BundleVoter 選択を上書きしますか? どうすれば非アクティブ化/上書きできますか?

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

php - PHP Symfony2 knp メニュー バンドル: foreach を使用して子を生成すると、無効なオフセット タイプの例外が発生する

私たちは Symfony2 を使用して旅行 Web サイトを開発しています。私は現在、メニューに行き詰まっています。現在のデザインは、次のように編成された複数レベルのメニューです。continents-> countries -> regions.国のサブメニューは大陸ごとにグループ化され、国ごとに地域がグループ化されています。Knp メニュー バンドルを使用しています。各メニュー項目を手動で生成したくないため、foreach ループを使用してサブメニューを動的に生成したいと考えています。このために、文字列変数を配列キーとして使用する必要がありますが、これは機能しません... エンティティ Continent および Country には、 getSlug().Clearlyを返す toString メソッドがあります 。$menu['south-america']$menu[$continent]

エラーメッセージは次のとおりです。

テンプレートのレンダリング中に例外がスローされました

メニュービルダーのコードは次のとおりです。

ご提案いただきありがとうございます。

見つかった解決策:

投稿してから数分後に解決策が表示されたため、この質問を投稿するのが少し速すぎた可能性があります(何時間ものテストの後)配列キーとして使用する場合。$menu[$continent->getSlug()] を使用するとうまくいきました。私の悪い。

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

symfony - Symfony2.6 、 SonataUserBundle 、クラス "Knp\Menu\MenuItem" でメソッド "setCurrentUri" を呼び出そうとしました。

現在 SonataUserBundle を使用していますが、 /profile/ page を読み込もうとすると、次のエラーが発生します。

いくつかの投稿で、多くの人が knplabs/knp-menu-bundle:1.1.* を要求することでこのエラーを解決したことを見てきました。

でもやってみると

次のエラーが表示されます。

ここに私のcomposer.jsonがあります

/profile/ ページを機能させるにはどうすればよいかわかりません... この問題を解決する方法を知っている人はいますか?

ありがとうございました

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

php - KnpMenu: MenuItem クラスに属性を追加

KnpMenuBundle を通じて Symfony2.3 で KnpMenu を使用しています。

MenuItem最も簡単な方法で、属性を追加してクラスをカスタマイズしたいと思います。

目的は、アプリケーションのエンティティのいずれかにリンクしMenuItem、後でそれを取得できるようにすることです。

たとえば、私はこれをしたい:

簡単だが醜い方法は、Knp\Menu\MenuItem.phpこれを編集して追加することです:

それが適切な方法ではないことはわかっているので、上書きしようとしましKnp\Menu\MenuItemKnp\Menu\MenuFactoryが、十分ではありません...

もっと色々なものを上書きしないといけない気がするので、ここでアドバイスをお願いします。バンドルは非常に複雑で、この機能 (MenuItem にクラス属性を追加する) は既にバンドルによって管理されているように感じますが、その方法はわかりません。

何か案が?

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

symfony - Symfony2, Sonata : Sonata バンドルによって生成されたメニューからアクションを削除します

クライアントのニーズに合うように、管理者側をきれいにする必要があります。

Sonata の NewsBundle を使用していますが、実際にはコメントを使用する必要がないので、管理者側から削除したいと考えています。少なくともメニューから。設定で無効にする方法はありますか?これに関するドキュメントにはヒントがありません。

ここで、もう表示したくない特定の領域:

ソナタメニュー

ソナタメニュー

ところで、メニューは KnpMenu で生成されるかもしれません

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

php - Symfony 2 KNP メニュー: CSS クラスをリンクに追加

Symfony2 に KnpMenuBundle を使用していますが、メニューで生成されたリンクから css クラスを追加する方法が見つかりませんでした。

class を child 属性に設定しようとしましたが、それはリンクには与えられず、可能性のある子メニュー (サブメニュー) に与えられます。

これにより、次の HTML が生成されます。

しかし、私はこのようにそれが必要です:

これどうやってするの?