我正在为Joomla 3.x开发一个组件,但我遇到了JControllerLegacy getModel的问题。当我尝试从我的控制器中调用它时.php在类 CasehandlerController 的显示函数中,它中断执行时没有错误,只是一个空白页,就好像函数未定义一样。相同的代码在我的本地开发服务器上运行良好,但在生产服务器上,进行此调用时会失败。函数如下:
function display($cachable = false, $urlparams = false)
{
$this->configuration = getConfiguration();
// set default view if not set
$input = JFactory::getApplication()->input;
$input->set('view', $input->getCmd('view', 'Casehandler'));
$view = $this->getView( $input->get('view'), 'html' );
echo 'model:';
$model = $this->getModel('Casehandler');// closing single quote missing here
echo 'model done.';
$view->setModel($model, true );
$view->setLayout( 'default' );
$view->display();
}
"模型:"得到回声,"模型完成"则不然。我试图通过回显模型类内部的行来调试它,但也没有响应。调用不带参数的 getModel() 也会产生相同的结果。当完全相同的代码在我的本地服务器上运行良好时,这里可能有什么问题?
通过在 getModel 函数中回显 JControllerLegacy 类的行进一步调试后,我从 $prefix 变量中得到了一个提示,将模型名称显示为 casehandlerModel 而不是 CasehandlerModel,将模型的文件名从 casehandler.php更改为 Casehandler.php 解决了问题......