Мой код пейджера не работает
Я использую следующий код просто для того, чтобы посмотреть, работает ли подкачка в Drupal 7, но у меня возникли проблемы с настройкой его на работу.
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->extend('PagerDefault')
->limit(5);
$headers = array(t('node'), t('Title'));
$rows = array();
$result = $query->execute();
foreach ($result as $record) {
$rows[] .= array($record->nid, $record->title);
}
$output = theme('table', $headers, $rows);
return $output . theme('pager');
Я не очень хорошо разбираюсь в PHP, так что может кто-нибудь, пожалуйста, сказать мне, что я делаю не так?
2
Author: kiamlaluno, 2011-06-20
1 answers
В вашем коде используется оператор объединения строк с массивом; вам нужен оператор присваивания.
$rows[] = array($record->nid, $record->title);
$headers = array(t('node'), t('Title'));
$rows = array();
$nodes = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->extend('PagerDefault')
->limit(5)
->execute();
foreach ($nodes as $node) {
$rows[] = array($node->nid, $node->title);
}
return theme('table', $headers, $rows) . theme('pager');
В зависимости от того, какая функция содержит этот код, он также может быть переписан следующим образом:
$page = array();
$rows = array();
$nodes = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->extend('PagerDefault')
->limit(5)
->execute();
foreach ($nodes as $node) {
$rows[] = array($node->nid, $node->title);
}
$page['table'] = array(
'#rows' => $rows,
'#header' => array(t('Node'), t('Title')),
'#theme' => 'table',
'#empty' => t('No content available.'),
);
$page['pager'] = array(
'#theme' => 'pager',
);
return $page;
1
Author: kiamlaluno, 2011-06-21 08:29:28