Model

Model komunicira sa bazom podataka. Pomoću modela možemo upisati podatke, nabaviti podatke iz baze, ažurirati podatke i izbrisati podatke. Ove četiri operacije se skraćeno zovu CRUD(create, retrieve, update i delete).

Na primjer, možemo napraviti model i migraciju pomoću naredbe:

php artisan make:model Student -m

Zatim možemo u migraciji dodati ime, prezime i godište studenta. U folderu Database/migrations naći ćemo create_students_table i dodati nove linije.

            $table->id();
            $table->string('first_name');
            $table->string('last_name');
            $table->integer('year');
            $table->timestamps();

Sljedeći korak je pravljenje tabele u bazi, na osnovu nove migracije.

php artisan migrate

Zatim, dodamo u routes/web.php fajlu novi link

Route::get('/test', [App\Http\Controllers\TestController::class, 'test']);

Zati, napravimo TestController:

php artisan make:controller TestController

Onda možemo izvršavati sljedeće kodove

public function test(){
     
       //CRUD - create. retrieve, update, delete

       //Upis podataka u bazu
       $student = new Student;
       $student->first_name = 'Filip';
       $student->last_name = 'Dujkovic';
       $student->year = 2007;
       $student->save();

        //Prikaz podataka iz baze

       $students = Student::all();
       $students = Student::all()->orderBy('year', 'DESC')

       return $students;

        //Azuriranje podataka
	$student = Student::find(1);
	$student->year = 2006;
        $student->save();

	//Brisanje podataka
	$student = Student::find(1);
	$student->delete();
}
php artisan migrate --path=/database/migrations/full_migration_file_name_migration.php

Primjeri korištenja modela Classroom:

    public function abc(){

        //$ucionica = new Classroom;
        //$ucionica->number = 18;
        //$ucionica->name = 'Istorija';
        //$ucionica->save();
        //insert into classrooms values (6, 4, 'Hemija')

        //$ucionica = Classroom::find(9);
        //$ucionica->number = 19;
        //$ucionica->save();
        //azuriranje podataka u tabeli
        //update classrooms set number = 19 where id = 9;
        
        
        //$ucionica = Classroom::find(5);
        //$ucionica->delete();
        //brisanje podtaka iz baze
        //delete from classrooms where id = 5

        $ucionice = Classroom::all();               //nabavi sve ucionce iz baze
        //select * from classrooms  

        //$ucionice = Classroom::where('number', '<', 20)->get(); //nabavi ucionice sa brojem manjim od 20
        //select * from classrooms where number < 20;

        //$ucionice = Classroom::where('name', 'Hemija')->get(); //nabavi ucionice kojima je hemija

        //$ucionice = Classroom::where([['number', '>', 10],['id', '<', 3]])->get();
        //Ako ima vise uslova u where, svaki uslov se stavi u uglaste zagrade i svi uslovi zajedno takodje u uglaste zagrade.
        return $ucionice; 
    }