Laravel è costruito con un pattern MVC (Models, Vews, Controller)
Controlled di Laravel
Per creare un nuovo controller andiamo nella shell e facciamo partire il comando per crearlo:
php artisan make:controller ProvaController
Troveremo un file nuovo sotto Http/Controllers.
Qui è possibile creare funzioni specifiche, ad esempio si può creare una funzionalità che attraverso l’input di un form riceva i dati.
Sul file Http>Controller>ProvaController.php scriveremo:
class ProvaController extends Controller
{
public function dataRequest(Request $request)
{
return 'Dati ricevuti ' . $request->input('data');
}
}
Nel file routes>web.php
Route::post('/profile', [ProvaController::class, 'dataRequest'])->name('profile');
Poi nella pagina in cui vogliamo inserire il form metteremo ad esempio:
<form action="{{ url('/profile')}}" method="POST">
@csrf
<label for="data">Inserisci un valore:</label>
<input type="text" id="data" name="data" required />
<button type="submit">Invia</button>
</form>
Lavorare col database su Laravel
Inserire i dati del database nel file .env
Poi popolare il database con i dati preimpostati attraverso la shell
php artisan migrate
I dati nel database si caricheranno in automatico sul database attraverso i seeder e tutti i file creati per i modelli del database, presenti nella cartella “database”.
Per creare una nuova tabella:
php artisan make:migration create_post_table
è possibile tornare indietro nelle modifiche di migrazione di un passaggio o per i passaggi che si definiscono.
php artisan migrate:rollback
php artisan migrate:rollback --step-2
Od è possibile resettare tutto il database
php artisan migrate:fresh
Se invece si vuole aggiungere una colonna ad una specifica tabella (es. posts)
php artisan make:migration add_excerpt_to_posts_table --table=posts
Invece per vedere lo stato delle migration
php artisan magrate:status
Per creare una factory basata su Posts
php artisan make:factory PostFactory --model=Posts
Per inserire i seeder nel database
php artisan db:seed
Per creare un nuovo seeder
php artisan make:seeder PostSeeder