【问题标题】:omines/datatables bundle wont search datetime columnsomines/datatables 捆绑包不会搜索日期时间列
【发布时间】:2019-06-26 12:08:33
【问题描述】:

我使用包来渲染数据表网格,包称为omines/datatables-bundle。搜索对所有字段都正确执行,除了 FilledAt 列是 DateTimeColumn 之一,这种类型是由 Omines 人定义的。 这是我的操作代码:

public function index(Request $request, CarRepository $carRepository, DataTableFactory $dataTableFactory)
    {
        $table = $dataTableFactory->create()
            ->add('id', NumberColumn::class, ["orderable" => true, "searchable" => true])
            ->add('carBrand', TextColumn::class, ["field" => "brand.name", "orderable" => true, "label" => "Marca del Carro", "searchable" => true])
            ->add('model', TextColumn::class, ["field" => "car.model", "orderable" => true, "label" => "Modelo del Carro", "searchable" => true])
            ->add("filledAt", DateTimeColumn::class, ["format" => "Y-m-d H:i:s", "searchable" => true, "orderable" => true])
            ->add("fuelFilled", NumberColumn::class, ["render" => "%s L", "searchable" => true])
            ->add("price", NumberColumn::class, ["render" => "%s cuc", "searchable" => true])
            ->add("formerRead", NumberColumn::class, ["searchable" => true])
            ->add("currentRead", NumberColumn::class, ["searchable" => true])
            ->add("mileage", NumberColumn::class, ["searchable" => true])
            ->add('actions', TwigColumn::class, [
                'className' => 'buttons',
                'template' => 'frontend/supervisor/carfill/table-buttons.html.twig',
            ])
            ->addOrderBy('filledAt', DataTable::SORT_DESCENDING)
            ->createAdapter(ORMAdapter::class, [
                "entity" => CarFuelFillRecord::class,
                "query" => function(QueryBuilder $builder){
                    $builder
                        ->from("App:CarFuelFillRecord", "cffr")
                        ->select("cffr, car, brand")
                        ->leftJoin("cffr.car", "car")
                        ->leftJoin("car.brand", "brand")
                    ;
                }
            ])
            ->handleRequest($request);

        if ($table->isCallback()) {
            return $table->getResponse();
        }

        return $this->render('frontend/supervisor/carfill/index.html.twig', [
            'datatable' => $table,
            "cars" => $carRepository->findAll()
        ]);
    }

这是我的模板代码

<script>
$(function() { $('#carFuelFillRecords').initDataTables({{ datatable_settings(datatable) }},{searching: true}); });
</script>

我做错了什么?提前非常感谢

【问题讨论】:

    标签: symfony datatables


    【解决方案1】:

    认为这是由于您的日期格式与日期存储在数据库中的格式之间的差异。捆绑包似乎准确搜索输入的字符串,在您的情况下可能采用“Y-m-d H:i:s”格式,但在数据库中不是。所以它找不到您输入的日期。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多