What Files are Inside Livewire+Tailwind CRUD?

When you create a CRUD in Livewire+Tailwind QuickAdminPanel, minimum of 12 new files are generated automatically, and 4 more files are updated. Potentially more, if you use some advanced features/modules.

For example, if you create CRUD called Transactions with a few simple columns like "amount" and "transaction_date", here's the minimum list of generated files.

[New Model]

  • app/Models/Transaction.php

<?php

namespace App\Models;

use \DateTimeInterface;
use App\Support\HasAdvancedFilter;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Transaction extends Model
{
    use HasFactory;
    use HasAdvancedFilter;
    use SoftDeletes;

    public $table = 'transactions';

    public $orderable = [
        'id',
        'amount',
        'transaction_date',
    ];

    public $filterable = [
        'id',
        'amount',
        'transaction_date',
    ];

    protected $fillable = [
        'amount',
        'transaction_date',
    ];

    protected $dates = [
        'transaction_date',
        'created_at',
        'updated_at',
        'deleted_at',
    ];

    public function getTransactionDateAttribute($value)
    {
        return $value ? Carbon::parse($value)->format(config('project.date_format')) : null;
    }

    public function setTransactionDateAttribute($value)
    {
        $this->attributes['transaction_date'] = $value ? Carbon::createFromFormat(config('project.date_format'), $value)->format('Y-m-d') : null;
    }

    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }
}

[New Controller]

  • app/Http/Controllers/Admin/TransactionController.php

[New database migration]

  • database/migrations/2021_04_18_000006_create_transactions_table.php

Notice about migrations: after every new or changed CRUD, we regenerate all migration files to make sure they are in the right order, to avoid creating foreign keys on non-existing tables. Therefore, keep in mind that you need to double-check the migration files manually, so they still work after you merge changes.

[New Blade views]

  • resources/views/admin/transaction/create.blade.php

  • resources/views/admin/transaction/edit.blade.php

  • resources/views/admin/transaction/index.blade.php

  • resources/views/admin/transaction/show.blade.php

[New Livewire Components]

  • app/Http/Livewire/Transaction/Create.php

  • app/Http/Livewire/Transaction/Edit.php

  • app/Http/Livewire/Transaction/Index.php

[New Livewire Blade views]

  • resources/views/livewire/transaction/create.blade.php

  • resources/views/livewire/transaction/edit.blade.php

  • resources/views/livewire/transaction/index.blade.php

[Changed main menu Blade Component]

  • resources/views/components/sidebar.blade.php

[Changed main routes]

  • routes/web.php

[Changed Seeds for Permissions]

  • database/seeds/PermissionsTableSeeder.php

[Changed Translation Files for new CRUD]

  • resources/lang/en/cruds.php

Last updated