Добрый день. Есть проблема создания связи между таблицой ноды и кастомной таблицы с данными.
Необходимо было прокинуть связь через таблицу поля ноды, везде примеры даны связи с таблицой ноды напрямую через nid. В итоге описал 2 left join через таблицу данных поля ноды. Так вроде работает но только если создавать представление на основе mytable, если в представлении на основе этого типа ноды хочу получить доступ к данным кастомной таблицы начинаются проблемы, поле в relationship отображается и добавляется но поля кастомной таблицы mytable не доступны для добавление в представление ноды. Как правильно описать revers связь?
<?php
mymodule_tables
.views.inc
mymodule_views_data
()
{
$data['mytable']['table']['group'] = t('mytable');
$data['mytable']['table']['base'] = array(
'field' => 'id',
'title' => t('mytable'),
'help' => t('mytable table contains clients info and can be related to nodes'),
);
$data['mytable']['table']['join'] = array(
'field_data_field_number' => array(
'left_field' => 'field_number_value',
'field' => 'num',
),
);
$data['field_data_field_number']['table']['join'] = array(
'node' => array(
'left_field' => 'nid',
'field' => 'entity_id',
),
);
$data['field_data_field_number']['entity_id'] = array(
'title' => t('mytable'),
'relationship' => array(
'base' => 'node',
'base field' => 'nid',
'handler' => 'views_handler_relationship',
'label' => t('Related node'),
'title' => t('Node'),
),
);
$data['mytable']['num'] = array(
'title' => t('client'),
'relationship' => array(
'base' => 'field_data_field_number',
'base field' => 'field_number_value',
'handler' => 'views_handler_relationship',
'label' => t('Related field num'),
'title' => t('num'),
),
);
$data['mytable']['id'] = array(
'title' => t('Client ID'),
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
),
'argument' => array(
'handler' => 'views_handler_argument_numeric',
),
);
$data['mytable']['name'] = array(
'title' => t('Name'),
'help' => t('Just a title'),
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
);
$data['mytable']['date'] = array(
'title' => t('date timestamp'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_date',
),
'argument' => array(
'handler' => 'views_handler_argument_date',
),
);
return
$data;
}
?>