2012-02-29 2 views
3

관리자가 배송을 위해 배송 상자 보고서를 만들 수 있습니다. 이미 각 발송물에 대한 내부 박스 코드를 저장했습니다. 문제는 이러한 코드가 "SPECIAL_PKG"또는 "SHIPPING_PKG_1"과 같지만 관리자가 사람에게 친숙한 이름을 대신 표시해야한다는 것입니다.Magento Collection/Grid - 필드/열 값의 이름을 바꿉니다.

결과는 일반적인 Mysql4 모음을 사용하여 수집되며 Mage_Adminhtml_Block_Report_Grid에 표시됩니다. 친숙한 이름 대신 내부 코드가 표시된다는 것을 제외하면 모든 것이 올바르게 작동합니다.

표시되기 전에 컬렉션 결과의 코드 이름을 바꿀 수있는 방법이 있습니까? 예를 들어,이 같은 배열을 얻을 수있다 ..

array(
    'SPECIAL_PKG' => 'Custom Packaging', 
    'SHIPPING_PKG_1' => 'Large Box' 
) 

를 .. 다음 I 든 보고서에 표시된 값을 변경하기 위해 사용합니까?

불행히도 데이터가 하나의 표준화 된 테이블에 존재하지 않기 때문에 불행히도이 인간 친화적 인 이름을 얻기 위해 SQL JOIN을 사용할 수 없습니다. 내가 할 수 있다면, 그럴거야.

답변

1

알 수 있습니다. Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract을 확장하여 맞춤 렌더러를 구현해야했습니다. 가이드로 this article을 사용하고, 그것은 큰 작품입니다!

비슷한 문제가있는 사람에게 도움이되는 경우 : 위의 질문에 표시된대로 생성자를 사용하여 배열을 만들었습니다. 그런 다음 render() 안에 키가 있는지 확인하고 대신 인간 친화적 인 데이터를 표시합니다.

관련 문제