問題タブ [zend-router]
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 - ZEND - 競合するルート パターン
カスタムルートを考え出そうとして、Zendフレームワーク1.12を使用しています。
Facebook のプロフィール URL ( http://facebook.com/username )のようなものを作成しようとしています。だから、最初に私はそのようなことを試しました:
mydomain.com/something を実行しようとするたびに、次のエラーが発生し続けました。
致命的なエラー: 336 行目の /var/desenvolvimento/padroes/zf/ZendFramework-1.12.0/library/Zend/Controller/Plugin/Broker.php のメッセージ「eventName is not specified」を含む例外「Zend_Controller_Router_Exception」をキャッチできませんでした
そのコードを機能させることができなかっただけでなく、すべてのデフォルト ルートが (明らかに) 上書きされていました。したがって、たとえば、「mydomain.com/admin」のようなものがあり、インデックスコントローラーの「admin」モジュールに送信されますが、同じエラーが返されました (/: と同じパターンに陥ったため)。イベント名)。
私がする必要があるのは、デフォルトのものを上書きせずに、実際に動作することなく、このカスタムルートを作成することです (dûh)。
私はすでにオンラインドキュメントとGoogleの多くの(A LOT)ものをチェックしましたが、私が得ているエラーやデフォルトルートを上書きしない方法に関連するものは何も見つかりませんでした. 私を正しい方向に向けてくれるものは何でもありがたいです。
ありがとう。
EDIT¹:なんとか機能させましたが、ルーティングはまったく使用しませんでした。次のプラグインを作成しました。
しかし、それは醜い回避策のように感じます... Tim Fountainが指摘したように、私のイベントは動的 (データベースからロードする) なので、ハードコードすることはできません。また、現在の実装では、すべてのモジュール/コントローラー/アクションの組み合わせをハードコーディングする必要がありません。
プラグインの使用を避ける方法があれば知りたいです。
EDIT²: 私はもうそのくだらないプラグインのことをしていません。ルーターエラーの原因がわかりました。ルーティング定義に、変数 'eventName' の有効なデフォルト値がありませんでした。私の修正は次のとおりです。
/adminや/:eventNameなどの「競合する」パターンでルートを作成することはまだできません。/adminが/:eventNameを上書きする方法があれば...
php - ZendFramework 2- 1つのルータールールですべてのアクションを利用できるようにする方法は?その唯一の許可アクションインデックス
1つのルータールールでそのコントローラー内のすべてのサブアクションを許可するにはどうすればよいですか?たとえば、これは次のとおりです。
例:
ファローアップ:
/loginと/login/ anythingが機能するようにするにはどうすればよいですか?
zend-framework - Zend Router の URL 配列のマージ
カスタム zend ルーターに問題があります。これは私の猫のルーターです
htttp://dev.dummy.com/video/k/1/fooを試すと正常に動作しますが、
htttp://dev.dummy.com/video/k/1/foo/order/titleを返しません htttp://dev.dummy.com/video/k/1/foo を返します。
この助けを願っています。ありがとう。
alias - ZF2:ルーターにURLエイリアスを作成する
私はZendFramework2を初めて使用し、このフレームワークを学びたいと思っています。ルーターにURLエイリアスを作成したい。たとえば、module.config.phpでこのようなものを定義しました
入力www.myapp.local/node/1
すると、アプリケーションのデフォルトコントローラーのデフォルトアクションにルーティングされます。私が欲しいのは、URLパスのエイリアスを処理できるルーター拡張機能です。例えば:
私はそれがZFで可能だったことを知っています。これは、ZFでこれを実現する方法のチュートリアルへのリンクです。 フレンドリーなURL これはポーランド語であることは知っていますが、コードは自明だと思います:)
アイデアは、URLヘルパーを使用して、エイリアスまたは通常のセグメント(node / [:id])を使用して有効なURLを組み立てることです。
Application \ ControllerフォルダーにAliasSegmentクラスを既に作成しましたが、エラーが表示されます。
私のAliasSegmentクラス(不完全):
私は何時間も答えを探していましたが、何も見つかりませんでした。少なくとも私が間違っていること、コードを挿入する場所、またはより良い解決策を知っているかどうかを教えてください。
すぐに使えるアプリケーションを探していません。私は何かを学びたいのですが、詳細に答えを教えていただければ幸いです:)
事前に感謝し、私の英語をお詫びします:)
編集:
私のカスタムルーターは現在機能しています。現時点では、エイリアスはハードコーディングされていますが、機能します。
私のAliasSegmentクラスは次のようになります。
この場合/about/gallery
、はのエイリアス/node/1
です。どちらのアドレスも正しいです。buildPath関数は、エイリアスパスを正しく返します。まあ、これが誰かに役立つことを願っています:)
ただし、Zend_Navigationで「link」という名前の追加パラメーターを使用してセットアップしたいと思います。
達成したいことの50%を実行しましたが、ルーターからZend_Navigationを取得するのに問題があります。どうやって渡すのかわからない。私はそれがこのようなものでなければならないと思います:
IndexControllerでは機能しますが、AliasSegmentでは機能しません。'link'パラメータを使用してナビゲーション配列ノードを見つける必要があります。
編集
私は解決策を見つけました。答えは以下の通りです。
php - ZF2:カスタムルート内でZend \ Navigationを取得するにはどうすればよいですか?
Zend\Navigation
カスタムルーターがあり、このカスタムルーターの内部にアクセスする必要があります。私はグーグル、質問、検索をしていましたが、結果はありませんでした:/
必要なのは、Alias::match関数でZend\Navigationを使用して、「link」パラメータを持つノードを見つけることだけです。
これが私のmodule.config.phpです:
そして、これが私のAliasクラスです。
編集:
これで、カスタムルーターにサービスマネージャーを挿入する必要があることがわかりました。あなたがこれを行う方法を知っているかどうか私に知らせてください:)
編集:
わかりました、カスタムルーターではなくルートです。私の悪い。私は#zftalk
ircchanellについて話していましたが、AliasSegment
クラスは実装する必要がありますServiceLocatorAwareInterface
。試してみましたが、別の問題があります。
setServiceLocator
関数では取得できませんservice locator
。nullオブジェクトを返します$serviceLocator
が、クラスZend\Mvc\Router\RoutePluginManager
です。
それからZendナビゲーションを取得する方法はありますか?
編集済み
@mmmshuddupの発言に対応して、カスタムルータークラスを変更しました。(新しいバージョンは上にあります)。また、関数Module.php
内で、次の行を追加しました。onBootstrap
ナビゲーションは機能し、以前にインスタンス化されroute
ているため、Aliasクラス内に表示されるはずですが、そうではありません。
この行をクラスのmatch
関数に入れました:Alias
そして$servicesArray
ほとんど空です。サービスも工場もありません。onBootstrap
(上記のように)新しいファクトリを設定した直後に挿入された同じ行は、navigation
および他のサービスで配列を返します。
問題は、このアレイ(またはServiceManager)をカスタムルーターと共有するにはどうすればよいAlias
ですか?
私がやりたいのはZF1で可能で、とても簡単だったと言わざるを得ません。
編集
私は解決策を見つけました。答えは以下の通りです
php - Zend ルーターの使用中に、他のリンク (ルートとして定義されていないリンク) が破損する
Zend Framework 1.12 を使用しています。
ルーターをいくつか追加したかったのです。私のシステムにはユーザーと管理者がいて、管理者がユーザーのページを表示するためのルーターを追加しました。
追加した
私の Bootstrap.php ファイルに。サイドバーには、(別のコントローラーの) アクションへのリンクを含むリンクがいくつかありました。リンクを.phtmlファイルに追加しました
このサイドバーには、複数のコントローラーからのこのリンクが多数含まれています。
ルートを追加するまで、これらは正常に機能しました。Bootstrap に新しいルートを追加した後 (そして、新しいアクション (viewall) を rooter から指定されたコントローラー (ユーザー) に追加した後) は正常に動作します ("xxx.com/userview/someusername として使用できます)。しかし、私の他のリンクはサイドバーはすべて「xxx.com/userview」になり、コントローラーとアクションの値がすべて失われます...
私は何を間違っていますか?? URL をより適切に定義するか、ルーターをより適切に定義する必要がありますか?
前もって感謝します。
routing - ZF2 HTTP クエリ ルーターでカスタム パラメータをスキップする
ここで/query
見つけたように
、追加の zend url ヘルパーで url アドレスを生成しています。構成ファイルでは、次のようにルーターをセットアップしました。
次のような生成されたリンクを受け取ります。
私がやりたいのは、設定していないパラメーターを削除controller
しaction
、自分で提供したパラメーターのみを表示することです。
ルーター構成で設定するオプションはありますか? それとも、私が欲しいものを手に入れる他の方法がありますか?
zend-framework - Zend Routing/URLヘルパー。グローバルパラメータをURLの最初に表示する
誰かが以下を実装するための最良の方法を知っているかどうか興味がありました:私は物事の「スコープ」を効果的に制御するパラメーターをzendフレームワーク1.12アプリに持っており、行のスコープを表すためにデータベース内のすべてのテーブルのフィールドです。これは単純な整数変数であり、「buildingID」と考えることができるため、使用する「building」を制御します。
プラグインでは、私は持っています:
これは私が必要とすることを達成します。URLビューヘルパーを使用してURLを作成すると、パラメーターがありますが、常にパラメーターリストの最後にあります。これはプログラミングの観点からは些細なことですが、このグローバルパラメータをURLパラメータに「追加」するにはどうすればよいでしょうか。
になる
どんなアイデアにもオープン。このクラスの設定に問題があったため、URLビューヘルパーをオーバーロードする場合は、サンプルコードを提供してください。
皆さん、ありがとうございました!
php - ページネーション、順序付け、およびフィルター用の URL の作成 - ZF
私、これを読んでいる皆さん、
私は 5 分前にインターネットに接続していて、とても素敵な URL を見つけました。
これは次のことに関連しています。
Zend_Controller_Router_Route
Zend Frameworkのクラスを使用して同様の URL を作成する方法を知りたいです。
私のウェブサイトでは、次のようになります。
また
と
注:私は正規表現に友好的ではないので、それを禁止したい、または誰かが正確な表現をしているなら、それはありがたいです。
php - zend フレームワークの URL ヘルパー - コントローラーの前に変数を渡す方法は?
Zend Framework (1.12) - URL ヘルパーに特定の問題があります。
この形式で言語ごとに分割されたサイトがあります。
/en/contact /de/gallery/gal1
等..
最初のパラメーターを変数として受け入れるようにルーターを変更し、GET でアクセスできるようにしました。
このガイドラインに従って URL ヘルパーを設定し、URL のコントローラーの前にこの変数を渡すにはどうすればよいですか? (私はモジュールを使用していません)。
どうもありがとう。イヴァン