Escribí un módulo para interactuar con Views 3 usando Drupal 7, pero cuando creo una vista usando mi tabla personalizada como fuente de datos, no aparece ningún dato. Aquí está mi esquema a partir de MySQL:Drupal 7 - vista personalizada con tabla personalizada, sin datos que aparecen
+-------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | mediumtext | NO | | NULL | |
| Department | text | NO | | NULL | |
| credits | int(10) | NO | | NULL | |
| description | longtext | NO | | NULL | |
+-------------+------------+------+-----+---------+----------------+
Y aquí está la anulación de gancho en my_module.views.inc:
function my_module_views_data() {
$tableName = 'My_Awesome_Table';
$data = array();
$data[$tableName]['table']['group'] = t('Courses');
$data[$tableName]['table']['base'] = array(
'field' => 'id',
'title' => t('Courses'),
'help' => t("Contains courses, departments, and descriptions.")
);
$data[$tableName]['title'] = array(
'title' => t('Course name'),
'help' => t('Course name'),
'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[$tableName]['Department'] = array(
'title' => t('Course department'),
'help' => t('Course department'),
'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[$tableName]['credits'] = array(
'title' => t('Credits'),
'help' => t('Number of credit hours'),
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'argument' => array('handler' => 'views_handler_argument_numeric'),
'filter' => array('handler' => 'views_handler_filter_numeric'),
'sort' => array('handler' => 'views_handler_sort_numeric')
);
$data[$tableName]['description'] = array(
'title' => t('Course description'),
'help' => t('Course description'),
'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[$tableName]['id'] = array(
'title' => t('Unique identifier'),
'help' => t('Primary key for table'),
'field' => array('handler' => 'views_handler_field'),
'argument' => array('handler' => 'views_handler_argument_numeric'),
'filter' => array('handler' => 'views_handler_filter_numeric'),
'sort' => array('handler' => 'views_handler_sort_numeric'));
return $data;
}
hace algo mal con mi mirada mapeo? Cuando creo una vista, intento una lista sin formato simple y simplemente visualizo cada campo con una etiqueta. El único campo que aparece con los datos es id
, y todos los valores id
de mi tabla están allí. Intenté agregar un filtro a la vista para que el Departamento del curso! = en blanco y nombre del curso! = en blanco, que no eliminó ningún resultado (basado en los id
s que se muestran). He aquí está generando la consulta Vistas:
SELECT My_Awesome_Table.title AS My_Awesome_Table_title,
My_Awesome_Table.Department AS My_Awesome_Table_Department,
My_Awesome_Table.description AS My_Awesome_Table_description,
My_Awesome_Table.credits AS My_Awesome_Table_credits,
My_Awesome_Table.id AS id
FROM {My_Awesome_Table} My_Awesome_Table
WHERE (((My_Awesome_Table.Department NOT LIKE '' ESCAPE '\\') AND
(My_Awesome_Table.title NOT LIKE '' ESCAPE '\\')))
Cuando ejecuto esto en phpMyAdmin, sólo la eliminación de la {
y }
de todo My_Awesome_Table
, devuelve los resultados y hay datos en cada columna.
Editar: es quizás relevante decir que hice otro módulo de vista personalizado para una tabla diferente en la misma base de datos, y funciona bien. Usé ese módulo como una base para éste, cambiando el nombre del módulo, los prefijos de función, etc.
sé que esto es probablemente obvio, pero cada vez que tengo un tema como este por lo general es debido a que el nombre de la función 'mi_módulo' está escrito incorrectamente. – kylex
Intente preguntar @ http://drupal.stackexchange.com/ – Strae