2014-11-21 4 views
0

나는 기본 테이블을 가진 사용자 지정 엔터티를 가지며 field_a 필드가있는 노드와 참조됩니다. 이제이 두 엔티티 (노드와 내 사용자 정의 엔티티) 사이의 관계를 만들고 싶습니다. 결과가 작동하지만 뷰 필드 섹션에 노드 필드가 나열되지 않습니다. 사용자 지정 엔터티에 대한Views 사용자 지정 엔터티 및 노드와의 관계

가 // 기본 테이블 조인 내부 "clinical_trial_research_sites"

function clinical_trial_views_data_alter(&$data) { 
$data['clinical_trial_research_sites']['node'] = array(
    'title' => t('Clinical Trial'), 
    'help' => t('Field Reference Appear in Location Content type.'), 
    // Information of the referenced table!! 
    'relationship' => array(
     'handler' => 'views_handler_relationship', 
     'label' => t('Location'), 
     'base' => 'field_data_field_site_comp_code', // node field table name 
     'base field' => 'field_site_comp_code_value', // field column name of node field 
     'relationship field' => 'site_comp_code', // This is referencing field in my custom entity 
    ), 
); 
} 

나는 SQL의 작업을 얻을 수 있습니다 작동하지만 난 일부를 표시 할로보기는 노드의 모든 필드를 나열하지 않습니다 노드의 들판도 !! 관계가 필드 테이블 일뿐만 아니라 노드 전체와 관련이 있다는 의견을 전하기 위해 몇 가지 정보가 누락되었다고 생각합니다 !!

답변

0

나는 entityreference에서 코드의 일부를 복사하여 해결했습니다. 이 관계에 다른 뷰 핸들러를 사용하고 그 관계에 다른 속성을 추가해야합니다.

function clinical_trial_views_data_alter(&$data) { 

    $data['clinical_trial_research']['clinical_trial_research_sites'] = array(
    'title' => t('Clinical Trial Research Sites'), 
    'help' => t('Field Reference Appear in Clinical Trial Research Sites.'), 
    'relationship' => array(
     'handler' => 'views_handler_relationship', 
     'label' => t('Clinical Trial Research Sites'), 
     'base' => 'clinical_trial_research_sites', 
     'base field' => 'study_num', 
     'relationship field' => 'study_num', 
    ), 
); 
    // The reference field in the node entity is not entity reference , its just a basic text field 
    $data['clinical_trial_research_sites']['site_comp_code']['relationship'] = array(
    'handler' => 'views_handler_relationship_entity_reverse', 
    'field_name' => 'field_site_comp_code', 
    'field table' => 'field_data_field_site_comp_code', 
    'field field' => "field_site_comp_code_value", 
    'base' => 'node', 
    'base field' => 'nid', 
    'title' => t('Referencing entity'), 
    'help' => t('Field Reference Appear in Location Content type.'), 
    'title' => t('Location'), 
); 
} 
관련 문제