4

これが私のコントローラーです

<?php
class Desbest_Brands_Adminhtml_BrandController extends Mage_Adminhtml_Controller_action {
    public function indexAction() {
        //echo "showing 123 works!";
        $this->loadLayout(); $this->renderLayout();
    }

そして、これが私のレイアウトです

<?xml version="1.0"?>
<layout version="1.0.0">
<brands_adminhtml_brand_index>
    <reference name="content">
        <block type="brands/adminhtml_brand" name="brand" />
        <block type="newsletter/subscribe" name="left.newsletter" template="newsletter/subscribe.phtml"/>
    </reference>
</brands_adminhtml_brand_index>
</layout>

それでも、管理者にビューを表示しても、電子メールの購読フォームでさえも何も読み込まれません。

4

1 に答える 1

14

キャッシュの問題以外に、アクションが正しく呼び出された場合(エコー123が表示されます)、ハンドルに問題がある可能性があります。

あなたの行動では、このコードを次の後に置いてみてください$this->loadLayout()

var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
die();

そのリクエストに対してロードされたすべてのハンドルが表示されます。

ハンドルはfullActionNameから生成されます。簡単に言うと、次のように生成されます。

route + controller + action

config.xmlを見てください。

config.xmlが次のような場合:

<admin>
    <routers>
        <brands>
            <use>admin</use>
            <args>
                <module>Desbest_Brands</module>
                <frontName>brands</frontName>
            </args>
        </brands>
    </routers>
</admin>

あなたの行動のために、それはハンドルを生成します:<brands_adminhtml_brand_index>

config.xmlが次のような場合:

<admin>
    <routers>
        <brandsadmin>
            <use>admin</use>
            <args>
                <module>Desbest_Brands</module>
                <frontName>brands</frontName>
            </args>
        </brandsadmin>
    </routers>
</admin>

あなたの行動のために、それはハンドルを生成します:<brandsadmin_adminhtml_brand_index>

アップデート:

また、config.xmlで管理レイアウトを定義することを忘れないでください。例:

<adminhtml>
    <layout>
        <updates>
            <brandsadmin>
                <file>yourlayoutname.xml</file>
            </brandsadmin>
        </updates>
    </layout>
</adminhtml>

app / design / adminhtml / default / [default /youradmintheme]/layout/yourlayoutname.xmlの下に置きます

于 2012-08-08T12:38:21.283 に答える