【发布时间】:2023-03-14 11:14:01
【问题描述】:
我已将自定义列添加到客户网格:
$this->addColumn('shipping_name', array(
'header' => Mage::helper('customer')->__('Shipping name'),
'index' => 'entity_id',
'renderer' => new My_Unique_Block_Customer_Renderer_Shippingname(),
'filter_condition_callback' => array($this, '_shippingNameFilter')
));
渲染器 Shippingname.php 看起来像:
class My_Unique_Block_Customer_Renderer_Shippingname extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
public function render(Varien_Object $row)
{
$id = $row->getData($this->getColumn()->getIndex());
$customer = Mage::getModel('customer/customer')->load($id); //customer id
$data = "";
if ( $customer->getDefaultShippingAddress() != null ) {
$shipping_address = $customer->getDefaultShippingAddress();
if ( $shipping_address->getFirstname() != null ) {
$data .= $shipping_address->getFirstname();
}
if ( $shipping_address->getLastname() != null ) {
if ( $shipping_address->getFirstname() != null ) {
$data .= " ";
}
$data .= $shipping_address->getLastname();
}
}
return $data;
}}
我应该用什么来代替函数 _shippingNameFilter() 而不是“shipping_name like ”?让此列中的过滤器起作用?
protected function _shippingNameFilter($collection, $column)
{
if (!$value = $column->getFilter()->getValue()) {
return $this;
}
$this->getCollection()->getSelect()->where("shipping_name like ?", "%$value%");
return $this;
}
谢谢!
【问题讨论】:
标签: php magento filter callback renderer