根据文档,我在后端列表页面中创建了一个过滤器 http://docs.joomla.org/J2.5:How_to_add_custom_filters_to_components
但我遇到了错误 在非对象上调用成员函数get() 用代码
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
//Following variables used more than once
$this->sortColumn = $this->state->get('list.ordering');
$this->sortDirection = $this->state->get('list.direction');
$this->searchterms = $this->state->get('filter.search');
在文件视图/ zzz / view.html.php
中代码是如何工作的? 谢谢。
答案 0 :(得分:0)
像
这样的电话$this->get('State');
将调用名为
的方法public function getState()
在相应的模型中,除非以其他方式实例化,否则它将是models/zzz.php
以下三行尝试加载由modellist中的函数populateState()保存的值(从zzz
模型继承),以检索模型中设置的排序和过滤器。但显然$this->state
没有设置(上面一行),所以首先测试getState()
的输出。
为避免错误,您可以查看是否已设置状态:
if (isset($this->state)) {
$this->sortColumn = $this->state->get('list.ordering');
etc...
但你应该真正尝试理解为什么不通过调试代码来设置它。