PowerPoint Presentation

Слични документи
Microsoft PowerPoint - 6. Query Builder.pptx

PowerPoint Presentation

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Microsoft Word - MySQL_3.doc

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

Introduction to Programming

Fakultet tehničkih nauka, Novi Sad Predmet: ISIBP

PDO

12.WT-javaScript-Drupal

CPHP_19

Slide 1

Introduction to Programming

Primenjeno programiranje - Vežbe

Baze podataka MySQL Community Server i MySQL Workbench

Microsoft Word - WP_kolokvij_2_rjesenja.doc

Microsoft Word - SYLLABUS -Dinamicki

Introduction to Programming

Visoka škola strukovnih studija za informacione i komunikacione tehnologije Ispisivanje u dokumentu JavaScript, po oću DOM objekta document, ože da is

Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka

KATALOG ZNANJA IZ INFORMATIKE

Baza podataka

PowerPoint Presentation

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

PowerPoint Presentation

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

UPUTA za uvođenje JOPPD - prva faza

4 dan - DWeb

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Upitni jezik SQL

SELECT statement basic form

Studijski primer - Dijagrami toka podataka Softverski inženjering 1

NACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014.

Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 17-1 Controlling User Access Davanje dozvole (grant

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

(Microsoft PowerPoint - 903_\216nidari\346_Java Persistence.pptx)

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Slide 1

4. Веза између табела практичан рад 1. Повежите табеле Proizvodi и Proizvođači у бази података Prodavnica.accdb везом типа 1:N. 2. Креирајте табелу St

Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #07 [нерецензи

Uvod u Python

Tutoring System for Distance Learning of Java Programming Language

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

01 SUBP

Slide 1

Trimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o.

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Model podataka

Funkcije predavač: Nadežda Jakšić

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Kombinatorno testiranje

Introduction to Programming

UPITI NAD JEDNOM TABELOM 1. Izdvojiti šifre svih knjiga select K_SIF from K 2. Izdvojiti šifre knjiga iz tabele K uz imenovanje kolone select K_SIF as

QlikView Training

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

P11.3 Analiza zivotnog veka, Graf smetnji

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

IEP - Projekat 2018/2019

Microsoft Word - IWT0906R.doc

Univerzitet u Beogradu Matematički Fakultet Informacioni sistemi Grupni sudentski rad Informacioni sistem ugostiteljskog objekta Mentori: Dr. Saša Mal

Baza fakultet sadrži 3 tabele: tabela studenti sadrzi informacije o studentima Njeni atributi su: indeks indeks studenta (primarni kljuc) ime ime stud

ОДГОВОРИ НА НАЈЧЕШЋЕ ПОСТАВЉАНА ПИТАЊА У ВЕЗИ СА ПРИМЕНОМ ОДЛУКЕ О ИЗМЕНАМА И ДОПУНИ ОДЛУКЕ О ИЗВЕШТАВАЊУ БАНАКА ( Службени гласник РС бр. 8/2019 у да

KREIRANJE TORRENTA Ako zelite da kreirate torrent fajl od nekog fajla ili foldera u vasem racunaru a kasnije podeliti sa drugim korisnicima i uploadov

03 SUBP

Slide 1

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Funkcije predavač: Nadežda Jakšić

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

Projekti šabloni

UNIVERZITET U NOVOM SADU TEHNIČKI FAKULTET MIHAJLO PUPIN ZRENJANIN TEHNOLOGIJE DISTRIBUIRANIH INFORMACIONIH SISTEMA - Skripta za teorijski deo (RADNA

UNIVERZITET UKSHIN HOTI PRIZREN FAKULTET RAČUNARSKIH NAUKA PROGRAM: TIT - BOS NASTAVNI PLAN-PROGRAM SYLLABUS Nivo studija Bachelor Program TIT-Bos Aka

DIGITALNA OBRADA SLIKE

3.Kontrlne (upravlja~ke) strukture u Javi

PowerPoint Presentation

Introduction to Programming

RSS RSS Really Simple Syndication - veoma jednostavno povezivanje - Predstavlja jednostavan način za auto atsko preuzi a je želje ih informacija sa Va

Robert Labus - Diplomsi rad

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET Sveučilišni studij KOMUNIKACIJA KLIJENATA U DISTRIBUIRANOJ JAVA APLIKACIJI Di

Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #04 [нерецензи

MEĐIMURSKO VELEUČILIŠTE ČAKOVEC RAČUNALSTVO PATRIK MIHOCI Izrada modela za objektno relacijsko povezivanje podataka u okviru aplikacije za opis predme

Univerzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović

PowerPoint Presentation

Microsoft Word - IP_Tables_programski_alat.doc

SINTEZA 2019 INTERNATIONAL SCIENTIFIC CONFERENCE ON INFORMATION TECHNOLOGY AND DATA RELATED RESEARCH ADVANCED COMPUTING AND CLOUD COMPUTING INTELIGENT

8 2 upiti_izvjesca.indd

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

Ovaj fajl ima 5 stranica. Prvi i drugi domaći zadatak iz Internet tehnologija, Svi css fajlovi su u folderu css a sve slike su u folderu i

SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Magda Klarić RAZVOJ APLIKACIJE U LARAVEL OKRUŽENJU Diplomski rad Voditelj

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

PowerPoint Presentation

Ime: Vladica Avramović Škola: Srednja stručna škola - Pljevlja Mob.tel. Obrazovni program / broj stranice: Računarski hardver - II razred - Fa

ПРОГРАМИ ЗА ПРАВЉЕЊЕ ПРЕЗЕНТАЦИЈА

UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS

PHP kod

(Microsoft PowerPoint - 412_Buni\346 HTV.ppt [Compatibility Mode])

Računarski praktikum I - Vježbe 09 - this, static

Tutoring System for Distance Learning of Java Programming Language

Транскрипт:

Visoka škola strukovnih studija za informacione i komunikacione tehnologije MVC - Modeli Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž

MVC.htaccess index.php Routing System Controller Model View

Modeli Videli smo do sada da kontroleri služe za dohvatanje i obradu podataka, a view dalje prikazuje te podatke. Do sada smo naučili kako kontroler (C) prosleđuje podatke ka view (V) i kako view iste prikazuje. U ovoj prezentaciji ćemo obraditi poslednji element MVC arhitekture, a to su M - Modeli.

Modeli Koja je uloga modela u MVC arhitekturi? Uloga modela je da komunicira i dohvata podatke iz baze.

1. Povezivanje sa bazom

Povezivanje sa bazom 1. Prvi korak je da kreiramo bazu podataka kroz phpmyadmin.

Povezivanje sa bazom 2. Sada je vreme da naš projekat povežemo sa bazom podataka. server baze podataka ime baze podataka Username i password za pristup bazi

Povezivanje sa bazom Ukoliko pokrećete projekat preko CLI Artisan, obavezno ugasiti, pa zatim ponovo pokrenuti projekat!

2. Kreiranje modela

Modeli Model obezbeđuje podatke i biznis logiku aplikacije To postiže tako što obezbeđuje komunikaciju sa bazom ili nekim drugim izvorom podataka Ne zna za HTML, web server, browser niti slično, samo pruža način upravljanja podacima (dohvatanje, izmena, brisanje)

Kreiranje modela Modeli se smeštaju u okviru foldera app/models. Folder Models se ručno mora kreirati.

Kreiranje modela Klasa jednog modela treba da izgleda ovako: <?php namespace App\Models; class Primer {?> } public function dohvatipodatke(){ // upit ka bazi }

3. Pisanje upita

Pisanje upita Za pisanje upita u Laravel-u, definisana je klasa DB. Ova klasa u sebi sadrži logiku za konekciju sa bazom, pri čemu čita parametre zadate u.env fajlu. DB klasa sadrži skup statičkih metoda za pisanje upita. Ova klasa se nalazi se nalazi u imenskom prostoru: Illuminate\Support\Facades.

SELECT Upit za dohvatanje podataka iz baze (SELECT) se realizuje na sledeći način: DB::select("select * from tabela"); Na mestu za upit se može napisati SELECT upit različite kompleksnosti. Preporuka je da se upit najpre izvrši u phpmyadmin-u, a zatim kopira u model!

SELECT Primeri: DB::select("select * from tabela1 t1 JOIN tabela2 t2 ON t1.id_t2 = t2.id_t2 WHERE t1.kolona = 5"); DB::select("select * from tabela1 ORDER BY kolona");

SELECT sa parametrima Prosleđivanje parametara SELECT upitu se može uraditi na više načina: 1. Konkatanacijom: DB::select( SELECT * FROM tabela WHERE kolona1 = ". $vrednost);

SELECT sa parametrima 2. Prosleđivanjem parametara kroz funkciju (preporuka): DB::select( SELECT * FROM tabela WHERE kolona1 = :naziv_parametra", array('naziv_parametra => $vrednost)); Na mestu gde je potrebno upitu proslediti vrednost neke promenljive piše se: :naziv_parametra.

SELECT sa parametrima Na mestu gde je napisan parametar, biće zamenjeno sa vrednošću koja se prosledi za taj parametar. Vrednost se prosleđuje kao drugi parametar metode DB::select(). S obzirom da parametara može biti više, prosleđuju se u formi niza.

SELECT sa parametrima Primer: DB::select("select * from tabela WHERE kolona1 = :kolona1 AND kolona2 = :kolona2 ", array('kolona1'=> $vrednost1, 'kolona2'=> $vrednost2)); Upit će izgledati: SELECT * FROM tabela WHERE kolona1 = Pera AND kolona2 = 5

INSERT Upit za dodavanje podataka u bazu (INSERT) se realizuje na sledeći način: DB::insert( INSERT INTO tabela VALUES (null, 'vrednost')"); Ukoliko je kolona AutoIncrement, kao vrednost staviti null. Prosleđivanje vrednosti upitu se vrši na isti način kao i kod SELECT upita, tj kao drugi parametar metode DB::insert() u formi niza.

INSERT sa parametrima Primer: DB::insert( INSERT INTO tabela (id, kolona1, kolona2) VALUES ( null, :kolona1, :kolona2 ), array('kolona1'=>$vrednost1, 'kolona2'=>$vrednost2));

UPDATE Upit za ažuriranje podataka iz baze (UPDATE) se realizuje na sledeći način: DB::update("UPDATE tabela SET kolona1 = :kolona1 WHERE id = :id", array('id' => $id, 'kolona1' => $vrednost ));

DELETE Upit za brisanje podataka iz baze (DELETE) se realizuje na sledeći način: DB::delete("DELETE FROM tabela WHERE id = :id", array('id' => $id));

4. Primer modela sa upitima

Primer modela <?php namespace App\Models; use Illuminate\Support\Facades\DB; class PrimerModel { PrimerModel Uključivanje klase DB za rad sa bazom iz drugog imenskog prostora public function dohvatipodatke(){ $rezultat = DB::select( SELECT * FROM tabela"); return $rezultat; } public function dodaj($kolona1, $kolona2) { $rezultat = DB::insert( INSERT INTO tabela VALUES (null,:kolona1, :kolona2)", array('kolona1'=>$kolona1, 'kolona2'=>$kolona2)); } SELECT INSERT

Primer modela UPDATE public function izmeni($id = 5, $kolona1){ $rezultat = DB::update("UPDATE tabela SET kolona1 = :kolona1 WHERE id = :id", array('kolona1' => $kolona1, 'id' => $id)); } DELETE public function obrisi($id){ $rezultat = DB::delete("DELETE FROM tabela WHERE id = :id", array('id' => $id)); } }?>

MVC.htaccess index.php Routing System Controller Model View

5. Povezivanje kontrolera i modela

MVC.htaccess index.php Routing System Controller Model View

Veza kontrolera i modela Mesto gde se završava zadatak modela, jeste kontroler. Sada treba uraditi još nekoliko koraka: 1. Kreirati kontroler (App/Http/Controllers) 2. Kreirati funkciju u okviru kontrolera u kojoj će se kontaktirati model 3. Preuzeti podatke iz modela 4. Odštampati podatke 5. Kreirati rutu za pristup kreiranoj funkciji (routes/web.php)

Veza kontrolera i modela <?php namespace App\Http\Controllers; PrimerController use App\Models\PrimerModel; class PrimerController { public function index(){ $model = new PrimerModel(); $podaciizbaze = $model->dohvatipodatke(); var_dump($podaciizbaze); } }?> Štampanje sadržaja promenljive u kojoj se nalazi rezultat upita ka bazi Uključivanje klase PrimerModel iz drugog imenskog prostora Kreiranje instance modela Pozivanje metode dohvatipodatke() iz klase PrimerModel

Veza kontrolera i modela routes/web.php Route::get( '/primer', 'PrimerController@index' ); Ruta za pristup preko URL Kontroler i funkcija koja se gadja unosom rute u URL adresi

MVC.htaccess index.php Routing System Controller Model View

6. Prosleđivanje podataka ka view - MVC

MVC.htaccess index.php Routing System Controller Model View

Prosleđivanje podataka ka view Sada imamo kreirane model PrimerModel (slajd 25) i kontroler PrimerController (slajd 31). 1. M 2. V 3. C

Prosleđivanje podataka ka view Sledeće što trebamo uraditi kako bismo komletirali MVC jeste: 1. Kreirati view (resources/views) -> primer.blade.php 2. Pozvati view u kreiranom kontroleru 3. Proslediti podatke iz kontrolera ka view 4. Prikazati podatke

Prosleđivanje podataka ka view <?php namespace App\Http\Controllers; use App\Models\PrimerModel; class PrimerController { } }?> public function index(){ $model = new PrimerModel(); $podaciizbaze = $model->dohvatipodatke(); $data = array(); $data['podaci'] = $podaciizbaze; return view('primer', $data); Prosleđivanje podataka iz baze ka view PrimerController Kreiranje instance modela Pozivanje metode dohvatipodatke() iz klase PrimerModel

Prosleđivanje podataka ka view primer.blade.php Član asocijativnog niza postaje promenljiva U $podaci se nalaze svi redovi iz tabele @foreach($podaci as $podatak) <p> {{ $podatak->kolona1 }} </p> @endforeach U $podatak se nalazi 1 red iz tabele Naziv kolone iz tabele, tj. one koja je dohvaćena upitom

MVC.htaccess index.php Routing System Controller Model View

Visoka škola strukovnih studija za informacione i komunikacione tehnologije MVC - Modeli Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž