【问题标题】:Render admin form either from controller or from xml从控制器或 xml 呈现管理表单
【发布时间】:2016-05-18 09:41:58
【问题描述】:

保存所有代码后,我正在自定义模块控制器中实现一些代码 数据库中的东西我想呈现管理表单。 我试过这是我的控制器操作

$this->loadLayout();
$this->getLayout()->createBlock('hello_world/adminhtml_world_edit_form')->toHtml();

但它给了我致命错误调用非对象上的成员函数 toHtml()。

我也在 xml 中尝试过此代码,savecccard 是控制器操作,我在其中获得了一些功能并保存数据

<hello_world_admin_world_savecccard>
            <reference name="content">
                <block type="hello_world/adminhtml_world_edit_form" name="autoship.form"></block>
            </reference>
</hello_world_admin_world_savecccard>

但这给了我只有页眉和页脚的空白内容页面。

请帮忙。

【问题讨论】:

    标签: php xml magento


    【解决方案1】:

    首先您需要确保您的模块处于活动状态。

    第二toHtml() is calling in a non-object表示createBlock('hello_world/adminhtml_world_edit_form')工作不正常。

    createBlock() 用于创建新块并将其添加到布局中。

    这个函数有3个参数
    1-类型
    2- 名称
    3- 属性/参数
    您已将类型指定为hello_world/adminhtml_world_edit_form
    所以 magento 会寻找 app/code/local/namespace/Hello_world/Block/Adminhtml/World/Edit/Form.ph‌​p 并且文件应该被正确声明。
    下一个参数是属性。这是可选的。

    【讨论】:

    • 其实 hello_world 是 namespace_modulename。我应该使用什么来到达确切的文件路径?
    • 那么你应该将你的控制器编辑为$this-&gt;getLayout()-&gt;createBlock('world/adminhtml_world_edit_form')-&gt;toHtml();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2015-02-15
    • 2011-12-06
    相关资源
    最近更新 更多