jensramakers/laravel-make-crud

There is no license information available for the latest version (v1.1.5) of this package.

laravel make crud command

v1.1.5 2022-11-12 22:37 UTC

This package is not auto-updated.

Last update: 2024-12-22 08:49:17 UTC


README

install package via composer

composer require jensramakers/laravel-make-crud

publish the stubs, add "--force" after the command below to overwrite existing stub files. Usefull when updating this package for example.

php artisan custom-stub:publish

Install datatables, jquery and fontawesome with npm package manager

npm i datatables.net
npm i datatables.net-dt
npm i jquery
npm install --save @fortawesome/fontawesome-free

load the packages and define the tables

window.$ = window.jQuery = require('jquery');
require('datatables.net');

$('.datatable').DataTable({
    stateSave: true,
    pageLength: 25,
    lengthMenu: [[10, 25, 50, 75, 100, -1], [10, 25, 50, 75, 100, 'All']],
});

load styling package and some extra optional css

@import '~@fortawesome/fontawesome-free/css/all';
@import "~datatables.net-dt";

.admin-summary-table > td {
    border: 1px solid black;
    border-bottom: none;
    border-top: none;
}

.admin-summary-table tr:nth-child(odd) {
    background-color: white;
}

.admin-summary-table tr:nth-child(even) {
    background-color: lightgrey;
}

table.dataTable tbody th, table.dataTable tbody td {
    padding: 0;
}

#DataTables_Table_0_length > label > select {
    padding-right: 2.5rem;
}

table.dataTable tbody th, table.dataTable tbody td {
    padding: 0;
}

add this to web.php and dont forget to protect this route with proper middleware

Route::get('/admin/modal/deletion/{route}', function ($route) { 
  return view('vendor.jensramakers.modal_delete', ['route' => str_replace('\\', '/', $route)])->render();
})->name('admin.deletion.async.modal');

Install tailwind elements for modal functionality
https://tailwind-elements.com/quick-start/

Usage

To create a CRUD page

php artisan make:crud

Choose a model name, use singular noun. E.g. "Product".
This creates a model, migration, formrequests, route and resource controller.
The route is created in "routes/crud.php", DONT manually add the crud.php file, it will be generated by the first command. To avoid error add below code after you ran the command once to your RouteServiceProvider.php.

Route::middleware('web')
    ->group(base_path('routes/crud.php'));

You can navigate to the page the generated URL will look something like this

http://localhost:8000/admin/products

You will get errors when you dont have the RouteAsync and/or FlashMessage package
https://github.com/PS222407/laravel-async-route
https://github.com/PS222407/laravel-flashmessage

Alternatively you can edit the stub files and remove the code and add your own