【问题标题】:Magento Grid Container Block not loading gridMagento Grid Container Block 未加载网格
【发布时间】:2011-04-19 12:47:48
【问题描述】:

我刚刚使用模块创建器设置了一个带有网格视图的管理模块,效果很好,但现在我需要在同一个模块中添加另一个网格视图。

我复制并重命名了与网格视图相关的所有文件(控制器和块文件,但不是模型,因为我正在做的事情不需要它们),并将新创建的块添加到布局 xml 下处理它的新控制器。

使用 Firephp,我发现一切都适合我的新视图,直到 Grid.php 没有加载,最终输出只是一个空白页。

据我所知,这个新视图在所有方面都与模块生成的原始工作网格视图相同,但名称除外,那么是什么原因导致它无法识别或加载 Grid.php?

【问题讨论】:

    标签: magento grid block adminhtml


    【解决方案1】:

    在网格容器块中查看$_blockGroup$_controller 的值。容器使用这些来查找和加载网格块。如果你真的想看看发生了什么,请查看parent::_prepareLayout() 方法。

    PS:
    $_blockGroup 是您的模块名称。
    $_controller 是您的网格块的路径。

    PPS:
    如果这还不够,请将其放入您的.htaccess

    php_flag display_errors on
    SetEnv MAGE_IS_DEVELOPER_MODE true
    

    如果网格的集合的 SQL 或其他问题出现问题,您应该获得更多信息。

    【讨论】:

    • 这些都是在block里面设置的。有趣的是,如果我将 $_blockGroup 设置为原始视图的值,它会很好地加载原始视图的网格。 _blockGroup 是简单地引用网格所在的块文件夹中的文件夹名称,还是在其他地方定义?
    • 我刚刚查看了服务器上的错误日志,我收到以下错误:调用非对象上的成员函数 setSaveParametersInSession()
    • 我将名称重新放在了前面,直到我仔细查看 _prepareLayout 方法才意识到,_blockGroup 不是文件夹名称。如果_blockGroupyourmodule 并且_controllerexample 那么它将尝试加载类Your_Module_Block_Example_Grid。如果该类不存在,您将看到 setSaveParametersInSession() 问题。
    • 已解决!我将 blockgroup 设置为模块名而不是文件夹名(这在我复制的示例中是相同的,因此会造成混淆),并且运行良好。感谢您的帮助
    • @clockworkgeek “你说得对,_blockGroup 是文件夹名称。”好吧,哪个文件夹仍然不清楚。文件夹结构有多少?
    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多