Questo git-template fornisce lo scaffold di una web application realizzata con Laravel 10, Blade, Breeze, SCSS, Bootstrap e Vite.
- Creare un repository a partire da questo template, cliccando in alto a destra sul pulsantone verde
Use this template
e poi suCreate a new repository
- Clonare il repository appena creato sul proprio PC
- Da phpMyAdmin creare un database, importarvi i dati e segnarvi il nome dato al DB
- Creare un file
.env
. Si può procedere copiandolo da.env.example
- Per creare la APP_KEY nel
.env
, lanciare il comando dedicato, ma prima installare le dipendenze composercomposer install php artisan key:generate
- Installare anche le dipendenze NPM
npm i
- Ri-controllare che tutti i dati nel
.env
siano corretti (attenzione al database!) - Lanciare migrazioni e seeder
php artisan migrate:fresh --seed
- Lanciare il progetto tramite il server built-in di PHP
php artisan serve
- Lanciare vite
npm run dev
- Puntare il browser all'indirizzo mostrato in terminale per controllare che tutto funzioni.
- Navigate all'indirizzo per fare login. Potete registrare un nuovo utente o usare:
user: [email protected] pass: 1backdoor2big
- Una volta loggati dovreste poter raggiungere la dashboard
Si possono creare tutti insieme con:
php artisan make:model NomeModello -rmsR
-r o --resource indica se creare un controller di tipo Resource Controller
-c o --controller crea un normale Controller (se non usato insieme a -r)
-m o --migration crea la Migration per il modello
-s o --seed crea il Seeder per il modello
-R o --requests crea le FormRequest e le usa nel Resource Controller
Qui trovate la lista dei parametri accettati da make:model
A questo punto potete andare a definire il comportamento di migration e seeder nei relativi file.
Infine lanciate entrambi usando il comando:
php artisan migrate:fresh --seed
Una volta creato un Resource Controller richiamatelo dalla rotte, come abbiamo sempre fatto.
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\PostController; // <---- Importare il controller da usare!!
Route::resource('posts', PostController::class);
Testato che tutto funzioni possiamo valutare di spostarlo sotto autenticazione.
Spostare il Resource Controller appena creato da App\Http\Controllers
a una nuova cartella App\Http\Controllers\Admin
Nel controller correggere il namespace ed importare il Controller generico
<?php
namespace App\Http\Controllers\Admin; // era "App\Http\Controllers"
use App\Http\Controllers\Controller; // Controller di base da importare (!)
//...ecc
Ora possiamo spostare le rotte del Resource Controller all'interno del blocco protetto da autenticazione:
Route::middleware(['auth'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
// Admin Post CRUD
Route::resource('posts', PostController::class);
});
A questo punto avrebbe senso anche spostare tutte le viste richiamate dal controller. Se prima si creava sotto "views" una cartella "nomeRisorsa" con tutte le viste:
/resources/views/posts/*.blade.php
Adesso invece quella cartella andrà creata sotto "views/admin"
/resources/views/admin/posts/*.blade.php