Laravel Livewire Datatable DateColumn filtering not having any effect

Viewed 14

I am showing a Datatable of the standard Users table in Laravel. I want to be able to provide date ranges which will filter the results and only display Users where created_at falls within those ranges.

My livewire component looks like this:

<?php

namespace App\Http\Livewire;

use Mediconesystems\LivewireDatatables\Column;
use Mediconesystems\LivewireDatatables\Http\Livewire\LivewireDatatable;
use Mediconesystems\LivewireDatatables\DateColumn;

class User extends LivewireDatatable
{
    /**
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function builder()
    {
        $q = \App\Models\User::query()->orderBy('id', 'desc');
        return $q;
    }

    /**
     * @return array
     */
    public function columns()
    {
        return [
            Column::name('name')
                ->label('User Name'),

            DateColumn::name('created_at')
            ->label('Created At')
            ->filterable(),

            Column::callback(['id', 'name'], function ($id, $name) {
                return view('user.actions', ['id' => $id, 'name' => $name]);
            })->unsortable()

        ];
    }

}

As you can see i've added filterable() to the created_at column

Here is my blade file:

@extends('layouts.app')
@section('content')
    <x-heading>Dashboard</x-heading>
    <x-border-box>
        <div v-pre>
            <livewire:user :hide-header="true" :hide-pagination="true" sort="id|asc"  />
        </div>
    </x-border-box>
@endsection

In the browser, I see the filter options above the created_at column in the table, however; when entering values the table does not refresh to reflect the filters, nothing happens.

0 Answers
Related