Moodle flexible_table显示空第一行

时间:2016-06-17 15:16:53

标签: php mysql html-table moodle

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;

我缺少什么?

1 个答案:

答案 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";

如果有帮助请告诉我