在Magento中过滤网格

Arm*_*iye 1 grid filter magento adminhtml

我在magento中制作了一个自定义网格,显示已保存的视频网址及其工作情况.但我想只显示记录中,其中urlid是例如3.这是我的_prepareCollection功能

protected function _prepareCollection()
{
    // Get and set the collection for the grid
    $collection = Mage::getResourceModel('drecomm_productvideo/video_collection');
    //what should i put in here, addFieldtoSelect?
    $this->setCollection($collection);
    return parent::_prepareCollection();
}
Run Code Online (Sandbox Code Playgroud)

我的网格延伸,Mage_Adminhtml_Block_Widget_Grid并且addFieldToFilter该类中没有任何功能.

Sla*_*den 5

首先,如果要为集合创建永久性过滤器(意味着您无法从网格视图中删除它),则应该使用addFieldToFilter集合对象.这个方法不是grid类的一部分,它是集合类的一部分.

$collection = Mage::getResourceModel('drecomm_productvideo/video_collection')
    ->addFieldToFilter('urlid', 3);
Run Code Online (Sandbox Code Playgroud)

现在,如果您只想为您的集合添加一个默认过滤器(意味着它将从头开始应用,但您将能够重置它并查看所有条目),您应该使用setDefaultFilter()网格块的方法.

protected function _construct()
{
    parent::_construct();

    //... your code
    $this->setDefaultFilter(array('urlid' => 3));
}
Run Code Online (Sandbox Code Playgroud)