我正在关注the example以在Joomla 2.5管理组件中实现自定义过滤器。
但我在模型populateState
方法中遇到错误:
调用未定义的方法 somecompModelsomecomp :: getUserStateFromRequest()。
$app = JFactory::getApplication('administrator');
// Load the filter state.
$search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
如果我使用getUserStateFromRequest
致电$app
,则错误消失:
$app->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
那么问题是什么?在默认的Joomla组件中,我看到它使用相同的方法并且它可以工作。也许我想念我的模特课?
有什么想法吗?
答案 0 :(得分:2)
发生这种情况是因为$app
是应用程序类的对象。正如您在代码中定义的那样。
$app = JFactory::getApplication('administrator');
和getUserStateFromRequest
方法在Application类中定义。如果要访问此方法,则必须像这样使用它。
$app->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
对于您的信息,$this
变量是您的本地对象。