我不知道为什么,但PHP触发了一个致命错误,因为类方法不存在。但它显然存在!
left.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
)
*/
}
?>
小工具.php(Visio_Log_Block_Recent_Widget)
Class Visio_Blog_Block_Recent_Widget
{
public function __construct()
{
return $this;
}
public function widgetContent()
{
return 'content';
}
}
我不知道为什么会发生这种事?
这可能是我的视图类在实现嵌套视图模板时出现的错误吗。
我从头开始构建框架。
从错误中可以看出,$loadBlock
似乎不包含Visio_Blog_Block_Recent_Widget
的实例或任何类。
所以问题在于分配。