Laravel: esempio CRUD



CRUD: inserire leggere, modificare, cancellare

Inserire

Per prima cosa dovremo creare un model, cioe’ la logica del nostro progetto, attraverso CLI :

php artisan make:model utenti

Questo comando creera' nella cartella app il file utenti.php, che verra' utilizzato per inserire dati.
Per farlo nel file routes.php inseriamo le seguenti itstruzioni:

Route:: get(' inserisci', function(){
$utenti= new \App\ utenti();
$utenti -> nome =' nome ';
$utenti -> email ='email@gmail.com';
$utenti -> password ='password';
$utenti -> save();
});

Per rinominare il file:

php artisan make:migration rinomina_utenti

Poi le istruzioni:

public function up(){ Schema:: rename('nomevecchio,' nomenuovo’); }

Sia nella function up() che down().

Soluzione di alcuni problemi:


  • Potrebbe succedere di dover agguingere 2 colonne upadet_at e anche created_at o attraverso phpmyadmin oppure attraverso le istruzioni di sopra.
  • Laravel potrebbe mettere al plurale il nome della tabella: “utenitis “, dando poi un warning di errore .
    In questo caso nel file creato utenti.php, immettere le istruzioni che impongono il nome della tabella :

    class utenti extends Model
    {
    public $table = "utenti";
    }

Leggere

con la clausola where, like, or, solo alcuni campi


                    

Route::get('leggere', function(){
return \App\utenti:: where('nome','like','like%')
->orWhere('email','=','email@gmail.com')
->get();
});

Oppure con un ciclo

Route::get('ciclo',function(){
$collezione =\App\utenti:: all();
foreach( $collezione as $id){
echo $id." < br />";
}
});

Modificare

Se abbiamo id esempio = 1

Route::get('modifica', function(){
$utenti= new \App\utenti();
$utenti = \App\utenti::find(1);
$utenti -> nome ='nuovonome';
$utenti ->save();
});

se invece vogliamo un criterio

Route::get('modifica', function(){
$utenti= new \App\utenti();
$utenti = \App\utenti::where('nome', 'nomecercato')
->update(['nome' => 'nuovonome']);
});

Cancellare

Route:: get('delete', function(){ \App\utenti:: where('nome', 'nomecercato')->delete();});