0

我不知道为什么,但是 PHP 触发了致命错误,因为类方法不存在。但它显然存在!

左.phtml:

<?php
    $block = Block::getBlock('core/sidebar_modules');
    foreach($block->getSidebar('left') AS $key => $value)
    {
        $_block = explode('_',$value->getName());
        if(isset($_block[1]))
        {
            $_block[1] .= '_widget';
        }
        $loadBlock = Block::getBlock(implode('/',$_block)); // returns instance of Visio_Blog_Block_Recent_Widget
        Debug::var_dump($loadBlock);
        /*
            returns:

            object(Visio_Blog_Block_Recent_Widget)#33 (0) {
            }
        */
        echo $loadBlock->widgetContent();
        /*
            returns:

            Fatal error: Call to a member function widgetContent() on a non-object in E:\docroot\vhosts\zend.local.host\htdocs\app\design\default\templates\left.phtml on line 13
        */

        Debug::print_r(get_class_methods($loadBlock));
        /*
            returns:

            Array
            (
                    [0] => __construct
                    [1] => widgetContent
            )
        */
    }
?>

Widget.php (Visio_Blog_Block_Recent_Widget)

Class Visio_Blog_Block_Recent_Widget
{
    public function __construct()
    {
        return $this;
    }

    public function widgetContent()
    {
        return 'content';
    }

}

我不知道为什么会这样?

在实现嵌套视图模板时,这是否可能是我的视图类的错误。

我从头开始构建框架。

4

1 回答 1

0

从错误看来,$loadBlock它不包含任何类的实例 Visio_Blog_Block_Recent_Widget或任何类。

所以问题在于分配。

于 2013-08-29T16:58:09.773 回答