2012-10-05 4 views
1

나는 magento로 사용자 정의 그리드를 만들어서 저장된 비디오 URL과 그 작업을 표시합니다. 그러나 나는 urlid이 예를 들어 3 인 레코드 만 표시하려고합니다. 여기 내 _prepareCollection 기능Magento에서 그리드 필터링하기

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(); 
} 

내 그리드 Mage_Adminhtml_Block_Widget_Grid에서 확장하고 그 클래스에는 addFieldToFilter 기능이없는 것입니다.

답변

4

우선 컬렉션에 대한 영구 필터를 만들려면 (그리드보기에서 필터를 제거 할 수 없음) 컬렉션 개체에 addFieldToFilter을 사용해야합니다. 이 메서드는 grid 클래스의 일부가 아니며 컬렉션 클래스의 일부입니다. 지금 당신은 당신이 컬렉션의 기본 필터를 추가 할 (가 처음부터 적용됩니다 것을 의미하지만, 당신이 그것을 재설정하고 모든 항목을 볼 수 있습니다) 경우

$collection = Mage::getResourceModel('drecomm_productvideo/video_collection') 
    ->addFieldToFilter('urlid', 3); 

, 당신이해야 그리드 블록의 setDefaultFilter() 메소드를 사용하십시오.

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

    //... your code 
    $this->setDefaultFilter(array('urlid' => 3)); 
} 
+0

는 너무 @Slayer 감사합니다! –

+0

답변 해 주셔서 감사합니다. 내가 뭔가 링크를 넣을 수있는 방법이 알려 수 있습니다 더 그것을 사용자 정의하고 싶었 수 있습니다 : $ this-> setDefaultFilter (배열 ('real_order_id'=> ('LT를'=> '100000229'))); –

관련 문제