首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加入creditmemo_flat_table

加入creditmemo_flat_table
EN

Stack Overflow用户
提问于 2013-11-19 09:20:24
回答 2查看 38关注 0票数 0

加入creditmemo_flat_table

代码语言:javascript
复制
$collection = Mage::getResourceModel('sales/order_creditmemo_grid_collection');
$collection->getSelect()
            ->join(
                array('creditmemo_table' => 'sales_flat_creditmemo'),
                'main_table.entity_id = creditmemo_table.entity_id',
                array('creditmemo_table.gift_cards_amount')
            );

gift_cards_amount存在时,我得到了正确的值,当不存在时,得到了正确的值。但是对于网格,我需要而不是。有人知道怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 09:46:35

select语法提供了IFNULL方法,可以在这里直接使用。

因此,您应该修改select语句。

代码语言:javascript
复制
$collection->getSelect()
        ->join(
            array('creditmemo_table' => 'sales_flat_creditmemo'),
            'main_table.entity_id = creditmemo_table.entity_id',
            array('IFNULL(creditmemo_table.gift_cards_amount,0) as gift_cards_amount')
        );
票数 1
EN

Stack Overflow用户

发布于 2013-11-19 10:34:52

您可以通过mysql和magento呈现器的两种方式来实现它,如mysql方式:

代码语言:javascript
复制
$collection->getSelect()
        ->join(
            array('creditmemo_table' => 'sales_flat_creditmemo'),
            'main_table.entity_id = creditmemo_table.entity_id',
            array('COALESCE(creditmemo_table.gift_cards_amount,0) as gift_cards_amount')
        );

    OR

Magento方式可以为字段设置渲染器,如下所示:

代码语言:javascript
复制
$this->addColumn('title', array(
          'header'    => Mage::helper('module')->__('Title'),
          'width'     => '250px',
          'align'     =>'left',
          'index'     => 'title',
          'renderer' => new Namespace_Module_Block_Adminhtml_Renderer_CheckNull(),
      ));

在块->Adminhtml下创建文件夹,名称为Renderer,文件名为CheckNull.php。就像Block->Adminhtml->Renderer->CheckNull.php一样,在签入页面中,编写如下代码:

代码语言:javascript
复制
   <?php

class Namespace_Module_Block_Adminhtml_Renderer_CheckNull extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{

    public function render(Varien_Object $row) {
        if($row->getData('title')==Null)
        {
            return '0';
        }else{
            return $row->getData('title');
        }
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20067541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档