排序和过滤在自定义管理模块中不起作用

时间:2013-12-16 06:27:38

标签: magento module grid

我正在尝试在magento中实现一个管理模块,在编辑网格实体时,第一页中有一个网格,标签中有网格。

主网格工作正常,但标签中的网格工作不正常。

我在调试代码时发现的问题是,我正在使用字段过滤在网格中加载集合,即我使用过滤器过滤集合,即用户ID。我这样做是因为我只需要表格中单个用户的数据。这造成了整个问题,网格中的数据正确,但网格内的过滤,排序和搜索功能无法正常工作,并返回404未找到的错误页面。我尝试删除我在获取集合时添加的字段过滤器,然后它工作正常,但表中的所有数据都来了,这与我的要求相反。 有没有可能解决这个问题。这是我试图做的方式:

protected function _prepareCollection() {
        $collection = Mage::getModel('merchant/subscriptions')->getCollection()->addFieldToFilter('user_id', Mage::registry('merchant_data')->getId());
        $this->setCollection($collection); //Set the collection
        return parent::_prepareCollection();
    } 

提前致谢。

3 个答案:

答案 0 :(得分:1)

过滤器操作取决于您的以下方法:

public function getGridUrl() {
  return $this->getUrl('*/*/grid', array('user_id' => Mage::registry('merchant_data')->getId(),'_current'=>true));
}

现在这就是你准备收藏的方式:

protected function _prepareCollection()
{
    $regData = Mage::registry('merchant_data');
    if(isset($regData))
              $regData = $regData->getId();
    else
       $regData = $this->getRequest()->getParam('user_id');
    $collection = Mage::getModel('merchant/subscriptions')->getCollection()->addFieldToFilter('user_id',$regData);
...

答案 1 :(得分:1)

好我的问题解决了我的代码中有错误。在网格文件中,下面的函数是错误的。

 public function getGridUrl() {
    return $this->getUrl('*/*/transactiongrid', array('user_id',Mage::registry('merchant_data')->getId(), '_current' => true));
}

正确的方法是

 public function getGridUrl() {
    return $this->getUrl('*/*/transactiongrid', array('user_id'=> Mage::registry('merchant_data')->getId(), '_current' => true));
}

答案 2 :(得分:0)

当我转储$ regData时,我得到了这个:

Cubet_Merchant_Model_Merchant Object
(
    [_eventPrefix:protected] => core_abstract
    [_eventObject:protected] => object
    [_resourceName:protected] => merchant/merchant
    [_resource:protected] => 
    [_resourceCollectionName:protected] => merchant/merchant_collection
    [_cacheTag:protected] => 
    [_dataSaveAllowed:protected] => 1
    [_isObjectNew:protected] => 
    [_data:protected] => Array
        (
            [user_id] => 3
            [firstname] => Robin
            [lastname] => Cubet
            [email] => robin@cubettech.com
            [username] => robincubet
            [password] => 51a7f45eb11fc49b5967a0039193c3ad:HSX8JkSO5lr3uaRHrzd86i7gb0RATeDb
            [created] => 2013-12-12 08:34:28
            [modified] => 2013-12-16 09:03:56
            [logdate] => 
            [lognum] => 0
            [reload_acl_flag] => 1
            [is_active] => 1
            [extra] => N;
            [rp_token] => 
            [rp_token_created_at] => 
        )

    [_hasDataChanges:protected] => 
    [_origData:protected] => Array
        (
            [user_id] => 3
            [firstname] => Robin
            [lastname] => Cubet
            [email] => robin@cubettech.com
            [username] => robincubet
            [password] => 51a7f45eb11fc49b5967a0039193c3ad:HSX8JkSO5lr3uaRHrzd86i7gb0RATeDb
            [created] => 2013-12-12 08:34:28
            [modified] => 2013-12-16 09:03:56
            [logdate] => 
            [lognum] => 0
            [reload_acl_flag] => 1
            [is_active] => 1
            [extra] => N;
            [rp_token] => 
            [rp_token_created_at] => 
        )

    [_idFieldName:protected] => user_id
    [_isDeleted:protected] => 
    [_oldFieldsMap:protected] => Array
        (
        )

    [_syncFieldsMap:protected] => Array
        (
        )

)