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;
}