0

我创建了模块并将 url 路径重写为:

<rewrite>
  <xxx>
    <from><![CDATA[#^/signup/(.*)#]]></from>
    <to>/xxx/index/index/address/$1/</to>
  </xxx>
</rewrite>

并描述了此操作的布局:

<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">

  <xxx_index_index translate="label">
    <remove name="yyy" />

如果 url 是“/xxx/index/index/address/yyy”,那么一切正常。但是如果 url 路径是“/signup/yyy”,那么控制器可以正常工作,但不会加载它的布局。

UPD:我在我的控制器中添加了句柄(感谢@mpaepper)“xxx_index_index”,然后使用以下方法获取句柄:Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());

array(6) {
  [0] =&gt; string(7) &quot;default&quot;
  [1] =&gt; string(13) &quot;STORE_default&quot;
  [2] =&gt; string(44) &quot;THEME_frontend_private_sales_theme_1_default&quot;
  [3] =&gt; string(17) &quot;signup_test2552_index&quot;
  [4] =&gt; string(19) &quot;customer_logged_out&quot;
  [5] =&gt; string(24) &quot;xxx_index_index&quot;
}

相同的结果 - 默认布局。

4

1 回答 1

0

我对这些类型的重写不是很熟悉,但似乎重写没有设置正确的布局句柄。我会尝试in your controller action使用以下方法添加句柄:

$this->getLayout()->getUpdate()->addHandle('xxx_index_index');
于 2013-01-28T16:00:43.923 回答