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

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

zend-acl - Zend_Controller_Router_Route を構造化して、アクションと param キーを同じ位置で処理するにはどうすればよいですか?

JSONでのルートは次のとおりです。

これにより、次のような URI が可能になり、これまでのところ完全に機能します。

ただし、 :actionの位置で、次のような URI も使用できるようにしたいと考えています。

これまでのところ、App_Controller_Action::__call()内でこれを達成しています。機能しますが、リクエストがディスパッチされるまで、アクションは技術的には「検索」または「用語」としてリストされ、それらのキーの値が id に割り当てられるため、面倒です。

これにより、フロント コントローラー プラグインで実行している Zend_Acl チェックで問題が発生しています。回避策として、「検索」と「タイプ」をアクセス許可として ACL に追加しましたが、これも面倒です。ACL には、これらのセマンティクスが含まれていない必要があります。ACL プラグインに到達するにリクエストを変更したいと思います。

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

zend-framework - ZF: カスタム ルート、すべてのパーツをパラメーターとして作成

うまくいけば、誰かがここで私を助けてくれます。

バスケットへの追加を処理する Zend Router があります。現在、カスタマイザー モジュールを構築しているため、ユーザーは製品の指定されたセクションにさまざまな色のパーツをいくつでも追加できます。

私の基本的なURLはこのようなものです

私の現在のrouter.iniはこのようなものです

私が本当に対応したいのは、このような URL です。

基本的に、サイズ/タイプ/の背後にあるすべては、パーツ、色、またはセクション (右、左、両方) です。

サイズ/タイプの後にすべての url-path-parts の単一の配列を取得するにはどうすればよいですか?

使用するだけで$this-_request->getParams();、このような配列が得られます

その配列を実行して、すべてのキーと値を値として新しい配列に追加することができます。問題は、url-path-parts の数が奇数の場合、最後の部分が params に返されず、空の変数として認識され、params 配列に追加されないことです。

どんなアイデアでも大歓迎です:)

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

zend-framework - Zend Frameworkは、ルーターを使用するときにキャメルケースのアクションを探していません

こんにちはみんな私は迷惑のスポットを持っています、誰かがこれにいくつかの光を当てることができることを願っています。

奇妙な理由で、キャメルケースをそのアクション名のすべて小文字に変更しない限り、アクションは存在しないというルートが表示され、正常に機能します。しかし、それは命名規則に反します!そして、私も自分のコードをだらしなくしたくありません。

これが私のルートです:

私にとって、これはArtistControllerでアクションsaveArtistsActionを探す必要がありますが、このエラーはスローされません。

以下のエラーが発生しました。アクション「saveartist」は存在せず、__ call()にトラップされませんでした

そのため、エラーではa for Artistが小文字になっているため、ルーターのキャメルケースが削除されたようです。それに合わせてアクションの名前を変更すると、機能します。

saveArtistを探していない理由は何ですか?

これはアーティストオブジェクトの一部であるため、名前を変更して保存するだけでよいことに気付きましたが、これを理解したいと思います。

助けてくれてありがとう:)


これを送ったらすぐにわかりましたが、他の人も同じ間違いに陥る可能性があるので、ここに置いて解決策を教えてください!

ルーターでは、まだURL形式のままです。キャメルケースではなくハイフンを使用するように意図されていたので、フレームワークがそれを機能させます。だからここに私の修正/解決策があります:

ハッピーコーディング:)

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

php - Zendルーター(/ Administration / usersなどのURLをAdministration_UsersControllerに転送する方法)

古いデフォルトのZendルーターを維持し、コントローラーのサイズが大きくなっているため、管理サブページ用のルーターを追加します。これらを論理的に少し分離し、URLをよりクリーンにします。

ドキュメントは他のことを行う方法を説明しているようですが、これは...

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

php - Zend_Router で param-key が省略されている

Zend_Controller_Router について質問があります。アプリケーションでモジュラー構造を使用しています。このアプリケーションは、Zend-Framework に基づいて構築されています。通常のルートは次のようになります。

/modulename/actionname/

モジュール内で常に IndexController を使用するため、URL で指定する必要はありません。これで、次のようにパラメーターを追加できるようになりました。

/modulename/actionname/paramkey/paramvalue/paramkey/paramvalue

だから、これはZFでは普通だと思います。しかし、場合によっては、URL 内に paramkey を提供したくないことがあります。たとえば、ブログのタイトルを URL 内に表示したいとします。もちろん、これは SEO を目的としています。

/blog/show/id/6/this-is-the-blog-title

この場合、blogはモジュール、showはアクションです。idは paramkey で6、表示したいブログ投稿の ID です。this-is-the-blog-titleもちろん、 id のブログ投稿の見出しです6。問題は、assemble()ルーターの -method を次のように使用すると、次のようになることです。

URL は次のようになります。

blog/show/id/6/0/this-is-the-blog-title.html

ご覧のとおり、0a がキーとして挿入されています。しかし、この0は省略してほしい。次のように、ブログタイトルをキーとして使用してこれを試しました。

これにより、次の結果が得られます。

blog/show/id/6/this-is-the-blog-title.html/

0は省略されていますが、最後にスラッシュがあります。

0キーなしで末尾のスラッシュなしでURL を取得する解決策はありますか?

よろしく、アレックス

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

php - Zend Framework 製品カタログ ルート

製品カタログのルートを作成するのに助けが必要です。次のような URL が必要です。

/製品/エレクトロニクス/14

/製品/エレクトロニクス/コンピュータ

/製品/エレクトロニクス/コンピューター/ラップトップ/4

URL の最後の数字は、現在のリストのページ番号を示しています。

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

zend-framework - Zend_Controller_Action _forward の使用 (または悪用) ケース

ZF を使用して Web アプリを開発しているときに、ハハがありました。Zend_Controller_Action の _forward メソッドに関する瞬間。Programmer's Reference Guideに記載されているように、アクション内で _forward メソッドを呼び出すと、要求されたアクションは現在のアクションが完了するまで実行されません。これは疑問を投げかけます:

_forward アクションを使用して、現在のアクションが別のアクションを開始する前に完了することを意図的に確認するのはいつですか? これの明確な例は何ですか? このアプローチを ActionStack に当てはめて使用することの落とし穴や利点はありますか?

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

php - Zend_Controller_Router_Route_Hostname を使用して複数のドメインで同じ Zend_Framework サイトを実行する

複数のドメインで実行するには、zend_framework に基づいて同じサイトを実行する必要があり、アプリケーションはどのドメインで実行されているかを認識する必要があります。Zend_Controller_Router_Route_Hostname を使用するのは良い考えだと思いましたが、いくつかの問題に遭遇しました。

ブートストラップに次のコードがあります

「サブドメインが指定されていません」というエラーが表示されます。ルートがリクエスト URL と照合される前に、レイアウト ファイルの $this->url が定義済みのルートを使用して URL を組み立てていることを突き止めたと思います。ホスト名ルートにデフォルト値を設定すると、エラーは発生しませんが、レイアウトの URL は現在のホスト名の値ではなくデフォルト値を使用します。

誰がこの問題を解決するのを手伝ってくれますか?

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

zend-framework - このルートをini形式に書き換える方法は?

次のPHPコードがあります。

今、このルートを私のapplication.iniに入れたいと思います

このコードで試しましたが、うまくいきません:

これを解決する方法を知っている人はいますか?

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

php - Zend_Controller_Router_Route

この構造に応答できる Router を作成しようとしています:

module/controller/action/idmodule/controller/action/page

唯一の違いは「id」または「page」です。私はこのコードを使用しています:

問題は、いくつかの状況で私が望むことです:

'http://www.domain.cl/administrador/productos/2' => (module=>administrador, controller=>productos,page=>2)しかし、ルーターの「administrador」を使用すると、'http://www.domain.cl/administrador/productos/index/0/2' (module=>administrador, controller=>productos,action=>index,id=>0,page=>2)

このような場合にどのように機能するかについて、私は非常に混乱しています。最初のルーターには「id」パラメーターのみがあり、もう1つのルーターには「ページ」パラメーターしかない2つのルーターを作成しようとしました。URL ヘルパーから次のように使用します。

  1. $this->url(array('module' => 'administrador', 'controller' => 'productos', 'action' => 'index', 'id' => 0), 'administradorId');

  2. $this->url(array('module' => 'administrador', 'controller' => 'productos', 'action' => 'index', 'page' => 1), 'administradorPg');

しかし、ルーターを使用したときは、ルーターに最後に追加されたものを常に選択します ( $router->addRoute('routerIdentifier', $route);)

ありがとう