製品のURLパスに基づいて書き換えルールをロードしようとしています。loadByRequestPath()が現在のURLパスでパラメータをオーバーライドしています
これを達成するには、Mage_Core_Model_Url_RewriteでloadByRequestPath()メソッドを使用しています。ここで
public function loadByRequestPath($path)
{
Zend_Debug::dump($path); // returns the path to my module
$this->setId(null);
$this->_getResource()->loadByRequestPath($this, $path);
$this->_afterLoad();
$this->setOrigData();
$this->_hasDataChanges = false;
return $this;
}
は私のモジュールコードされています:しかし、私は次のような結果を得るため、この方法を供給何で(コード内のコメントをチェックしてください)奇妙
、私はこれを取り戻す:
Array ([0] => rewrites/getProductRewrites
[1] => rewrites/getProductRewrites/)
Array ([0] => 01003-product-name)
loadByRequestPath()は何らかの理由で2回呼び出されています。 $ productRewriteはまだ空のオブジェクトを返します。
$ product-> getUrlPath()が正しいパスを返すことを確認しました。 (2番目の配列に見られるように)
私はMagento 1.6.1です。
これは明らかではありません1.あなたがこれから抜け出すことが期待される動作は何ですか、そして、あなたが実際に得ている動作は何ですか。 –
こんにちはアラン。意図された振る舞いは、供給されたパラメータを返すための$ pathであり、これは製品パスでなければなりません。代わりに、私のモジュールへのパスを含む配列を返しています。 –
ああ、それは今や理にかなっています。最初のアレイはMagentoの標準ルーティングプロセスの一部です。 MagentoはすべてのURLをloadByRequestPathメソッドに渡して、可能な書き換えを探します。 2番目はあなたの電話からです。下記の回答を参照してください。 –