将 Moodle html_table 更改为 flexible_table 后,我将第一个行视为完全空,因此排序不起作用。 我更改了表格,因为html_table没有排序功能。 代码是:
ob_start();
$table = new flexible_table('Cars');
$table->define_baseurl(new moodle_url("/blocks/cars/view.php"));
$table->define_columns(array(
'carname',
'carnumberplate',
'carhiredate',
'city',
'actions',
));
$table->define_headers(array(
get_string('carname', 'block_cars'),
get_string('carnumberplate', 'block_cars'),
get_string('carhiredate', 'block_cars'),
get_string('city', 'block_cars'),
get_string('actions')
));
$table->sortable(true, 'cars');
$table->collapsible(false);
$table->set_attribute('cellspacing', '0');
$table->set_attribute('id', 'view-block-cars');
$table->set_attribute('class', 'generaltable');
$table->setup();
// Add one blank line
$table->add_data(NULL);
$strdateformat = get_string('strftimedate');
$strtimeformat = get_string('strftimetime');
foreach ($cars as $car) {
$datestart = userdate($car->starttime, $strdateformat);
$dateend = userdate($car->endtime, $strdateformat);
$timestart = userdate($car->starttime, $strtimeformat);
$timeend = userdate($car->endtime, $strtimeformat);
$date = $datestart;
if ($datestart != $dateend) {
$date .= ' - '.$dateend;
}
$time = $timestart.' - '.$timeend;
$actions = array(
html_writer::link($car->get_view_url(), get_string('view')),
);
$actions = implode(' | ', $actions);
$row = array(
format_string($car->carname),
format_string($car->platenumber),
$date,
format_string($car->city),
$actions,
);
$table->add_data($row);
}
$table->finish_html();
$out .= ob_get_clean();
return $out;
我缺少什么?
答案 0 :(得分:0)
首先,仔细检查您是否从app.route('/testing').post(machine.updatingJsonConfig)
获取了字段carname
(我假设您正在使用此功能或类似功能)。< / p>
第二次,有助于识别在foreach中执行$DB->get_records()
的问题,以检查这是否正确打印数据。在你的foreach之前还要print_object($car->carname);
并检查结果
第三次,如果数据打印正确,我强烈建议调试您的文件,看看您可能收到的错误,警告或通知消息。在print_object($cars);
require "../../config.php";
如果有帮助请告诉我