laravel

Laravel Query Builder

Laravel Query Builder
Generatorul de interogări Laravel oferă un mod simplu și convenabil de a crea și rula interogări de baze de date și este acceptat de toate sistemele de baze de date Laravel. Este folosit pentru a proteja aplicația Laravel de atacul de injecție SQL folosind legarea parametrilor PDO. Acest pachet poate efectua mai multe tipuri diferite de operațiuni în baza de date, cum ar fi CRUD (Inserați, selectați, actualizați și ștergeți) și agregați funcții, cum ar fi UNIUNE, SUMĂ, CONTE, etc. Acest tutorial vă arată cum să aplicați un constructor de interogări pentru a efectua diverse operații CRUD în baza de date.

Condiții prealabile

Înainte de a începe acest tutorial, mai întâi, finalizați următoarele activități.

  1. Creați un nou proiect Laravel
  2. Faceți conexiunea la baza de date

Creați un tabel

Puteți utiliza una sau mai multe tabele de baze de date pentru a aplica un generator de interogări pentru executarea diferitelor tipuri de interogări. Un nou tabel, numit clienți, este creat aici pentru a arăta utilizările constructorului de interogări. Rulați următoarea comandă pentru a crea un fișier de migrare pentru crearea structurii fișierului clienți masa. Un fișier de migrare va fi creat în baza de date / migrarea după executarea comenzii.

$ php artisan make: migration create_clients_table

Deschideți fișierul de migrare nou creat și actualizați fișierul sus() metoda cu următorul cod. Șase câmpuri vor fi generate pentru tabela clienților după executarea comenzii migrare. Câmpurile sunt id, nume, e-mail, adresă, created_at, și actualizat_at.

funcție publică sus ()

Schema :: create („clienți”, funcție (Blueprint $ tabel)
$ tabel-> id ();
$ tabel-> șir ('nume');
$ tabel-> șir ('e-mail');
$ tabel-> text ('adresă');
$ table-> timestamps ();
);

Rulați următoarea comandă pentru a crea tabelul în baza de date pe baza structurii definite în fișierul de migrare.

$ php artisan migrează

Puteți verifica câmpurile tabelului deschizând structura fișierului clienți masă din phpMyAdmin. Următoarea ieșire va apărea după deschiderea structurii tabelului.

Introduceți date în tabel folosind Query Builder

Puteți insera date în tabel folosind generatorul de interogări. Aici web.php fișier este utilizat pentru a insera trei înregistrări în clienți masă și se află în rute pliant. Deschideți fișierul și adăugați următorul traseu pentru a insera înregistrările.

Route :: get ('insert', function ()
/ * Introduceți prima înregistrare * /
DB :: table ('clients') -> insert (['name' => 'Md. ali ',
'email' => '[email protected]',
'address' => '12 / 1, Dhanmondi, Dhaka ',
]);
/ * Introduceți a doua înregistrare * /
DB :: table ('clients') -> insert (['name' => 'Sharmin Jahan',
'email' => '[email protected]',
'address' => '156, Mirpur, Dhaka',
]);
/ * Introduceți a treia înregistrare * /
DB :: table ('clients') -> insert (['name' => 'Mehrab Hossain',
'email' => '[email protected]',
'address' => '34 / A, Mohammedpur, Dhaka ',
]);
/ * Tipărește mesajul * /
ecou "

Sunt introduse trei înregistrări client

);

Rulați următoarea adresă URL în orice browser după pornirea serverului de dezvoltare Laravel pentru a insera datele în clienți masa.

http: // localhost: 8000 / insert

Următorul mesaj va apărea în browser după introducerea datelor. Puteți verifica conținutul tabelului deschizându-l din phpMyAdmin.

Citiți datele din tabel folosind Query Builder

Puteți executa diferite tipuri de interogări Select cu ajutorul generatorului de interogări. Cele patru tipuri de înregistrări sunt recuperate folosind generatorul de interogări în următoarea funcție de rută. Un fișier de vizualizare numit clienți.lamă.php este folosit aici pentru a afișa datele preluate din tabel și codul vizualizării este dat mai târziu.

Route :: get ('show', function ()
/ * Preluarea tuturor înregistrărilor din tabelul clienților * /
$ clientList1 = DB :: table ('clients') -> get ();
/ * Preluarea primei înregistrări a tabelului clienților * /
$ clientList2 = DB :: table ('clienți') -> first ();
/ * Preluarea celei de-a treia înregistrări a tabelului clienților * /
$ clientList3 = DB :: table ('clients') -> find (3);
/ * Preluarea numelui unui client pe baza e-mailului din tabelul clienților * /
$ clientList4 = DB :: table ('clienți') -> unde ('e-mail', '[e-mail protejat]') -> valoare ('nume');
/ * Returnați valorile celor patru variabile în fișierul de vizualizare pentru a afișa datele
Adus din tabel * /
vizualizare return ('clients', ['clientList1' => $ clientList1, 'clientList2' => $ clientList2,
'clientList3' => $ clientList3, 'clientList4' => $ clientList4]);
);
clienți.lamă.php

Lista tuturor clienților



@if (@isset ($ clientList1))






@foreach ($ clientList1 ca $ client1)





@endforeach
ID-ul clientuluiNumeAbordareE-mail
$ client1-> id$ client1-> nume$ client1-> adresa$ client1-> email

@endif

@if (@isset ($ clientList2-> name))

Numele primului client este $ clientList2-> name


@endif
@if (@isset ($ clientList3-> email))

Adresa de e-mail a celui de-al 3-lea client este $ clientList3-> email


@endif
@if (@isset ($ clientList4))

Numele clientului pe baza e-mailului este $ clientList4


@endif

Rulați următoarea adresă URL în orice browser după pornirea serverului de dezvoltare Laravel pentru a citi datele din clienți masa.

http: // localhost: 8000 / show

Următoarea ieșire va apărea în browser după executarea adresei URL. Conținutul $ clientList1 variabila este afișată sub formă de tabel și ieșirea din $ clientList2, $ clientList3 și $ clientList4 sunt afișate într-o linie.

Actualizați datele folosind Query Builder

Puteți actualiza câmpuri unice sau multiple pe baza condițiilor unice sau multiple folosind generatorul de interogări. Conform următoarei funcții de rută, valoarea Nume câmpul va fi actualizat pe baza valorii e-mail camp. Apoi, conținutul tuturor înregistrărilor din clienți tabelul va fi recuperat și trimis în fișierul de vizualizare pentru a verifica conținutul actualizat al tabelului.

Route :: get ('update', function ()
DB :: table ('clients') -> where ('id', 1) -> update (['name' => 'Mohammed Ali']);
ecou "
Numele primului client este actualizat
";
$ clientList1 = DB :: table ('clients') -> get ();
vizualizare return ('clients', ['clientList1' => $ clientList1]);
);

Rulați următoarea adresă URL în orice browser după pornirea serverului de dezvoltare Laravel pentru a actualiza datele din clienți masa.

http: // localhost: 8000 / actualizare

Următoarea ieșire va apărea în browser după executarea adresei URL. Conținutul $ clientList1 variabila este afișată sub formă de tabel. Aici, valoarea Nume câmpul este actualizat cu noua valoare.

Ștergeți datele folosind Query Builder

Toate înregistrările sau o anumită înregistrare pot fi șterse folosind generatorul de interogări. Următoarea funcție de rută va șterge a treia înregistrare din clienți tabel, preluați toate înregistrările după ștergere și returnați valorile în fișierul de vizualizare.

Route :: get ('șterge', funcție ()
DB :: table ('clients') -> where ('id', '=', 3) -> delete ();
ecou "
A treia înregistrare este ștearsă
";
$ clientList1 = DB :: table ('clienți') -> get ();
vizualizare return ('clients', ['clientList1' => $ clientList1]);
);

Rulați următoarea adresă URL în orice browser după pornirea serverului de dezvoltare Laravel pentru a șterge o înregistrare din clienți masa.

http: // localhost: 8000 / șterge

Următoarea ieșire va apărea în browser după executarea adresei URL. Conținutul $ clientList1 variabila este afișată sub formă de tabel. Aici, a treia înregistrare este ștearsă din tabel.

Tutorial video

Concluzie

Utilizările de bază ale generatorului de interogări sunt prezentate în acest tutorial pentru a ajuta noii dezvoltatori Laravel să înțeleagă mai bine metodele de executare a interogărilor bazei de date în aplicația Laravel.

Cum se utilizează AutoKey pentru automatizarea jocurilor Linux
AutoKey este un utilitar de automatizare desktop pentru Linux și X11, programat în Python 3, GTK și Qt. Folosind funcțiile sale de scriptare și MACRO,...
Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...