O modalitate draguta si usoara de a gestiona reviziile db-ului dvs.

  • Gestioneaza reviziile in bloc – o intrare acopera toate campurile create / actualizate, ceea ce il face foarte usor de ex. comparati 2 versiuni date sau obtineti toate datele schimbate in timpul unei actiuni.

Cerinte

  • Acest pachet necesita PHP 5.4+
  • In prezent functioneaza din cutie cu Laravel5 + generic Illuminate Guard, tymon / jwt-auth SAU cartalist / santinela 2 / santinela 2

Utilizare (exemplu de baza Laravel5 – vezi si Personalizarea de mai jos)

1. Descarcati pachetul sau solicitati-l in composer.json:

compozitor necesita canapea / revizibil

2. Adaugati furnizorul de servicii la app / config / app.php:

‘providers’ => array (… ‘Sofa \ Revisionable \ Laravel \ ServiceProvider’,),

3. Publicati fisierul de configurare a pachetului:

~ $ php artisan vendor: publish [–provider = “Sofa \ Revisionable \ Laravel \ ServiceProvider”]

aceasta va crea fisierul config / sofa_revisionable.php, unde puteti regla cateva setari:

<? php return [/ * | —————————————— ——————————– | Model de utilizator (pentru relatia executorului pe modelul Revision).

incesto en espanol folladas caseras reales
videos sexo español pajas en español
fakings.tv coños ricos
mujeresfollando incesto lesbianas
folladas extremas brutal tops
sione cooper casadas españolas follando
gorditas tetonas mamadas de polla
porno espania sexo hd
joven folla por dinero porno france
vidiosxxx peliculas eroticas italianas
como folla mi vecina xxxespañol
abuelasputas incestoxxx
padre se folla a su hija follando con mi mujer
vídeos de sexo gratis videos xxx violadas
analxxx peliculas porno castellano
pilladas desnudas españolas masturbandose
pelis porno españolas abuela porno
forzadas a follar muy maduras follando
porno viejas en español fiestas xxx
videos porno para mujeres gratis mi mujer me folla el culo

| ————————————————- ————————- | | In mod implicit App \ User. * / ‘usermodel’ => ‘Aplicatie \ Utilizator’, / * | ———————————- —————————————- | Implementarea furnizorului de utilizatori (auth). | ————————————————- ————————- | | In mod implicit, Laravel generic Illuminate \ Auth \ Guard. | | Optiuni acceptate: | – iluminare | – santinela | – santinela | – jwt-auth | – session * / ‘userprovider’ => ‘iluminare’, / * | ———————————- —————————————- | Campul utilizatorului care trebuie salvat ca autor al actiunii urmarite. | ————————————————- ————————- | | In mod implicit: | | – id pentru iluminare | – camp de conectare (e-mail) pentru santinela / santinela * / ‘userfield’ => ‘id’, / * | ————————– ———————————————— | Tabel utilizat pentru revizuiri. | ————————————————- ————————- * / ‘table’ => ‘revizuiri’, / * | ———– ————————————————– ————- | Conexiunea la baza de date utilizata pentru revizuiri. | ————————————————- ————————- * / ‘connection’ => nul,]; / * | ———————————————– ————————— | Tabel utilizat pentru revizuiri. | ————————————————- ————————- * / ‘table’ => ‘revizuiri’, / * | ———– ————————————————– ————- | Conexiunea la baza de date utilizata pentru revizuiri. | ————————————————- ————————- * / ‘connection’ => nul,]; / * | ———————————————– ————————— | Tabel utilizat pentru revizuiri. | ————————————————- ————————- * / ‘table’ => ‘revizuiri’, / * | ———– ————————————————– ————- | Conexiunea la baza de date utilizata pentru revizuiri. | ————————————————- ————————- * / ‘connection’ => nul,];

4. Rulati migrarea pentru a crea tabelul de revizuiri:

~ $ php artisan revisions: tabel ~ $ php artisan revisions: upgrade-5.3 ~ $ php artisan revise [–database = custom_connection]

Puteti furniza parametri suplimentari –database daca doriti ca migrarea sa fie executata utilizand conexiune db non-implicita.

5. Adaugati o trasatura revizibila la modelele pe care doriti sa le urmariti:

<? php App spatiu de nume; utilizati Illuminate \ Database \ Eloquent \ Model; utilizati Sofa \ Revisionable \ Laravel \ Revisionable; // clasa de trasaturi Utilizatorul extinde Model {use Revisionable; / * * Setati lista alba revizibila – numai modificarile la oricare * din aceste campuri vor fi urmarite in timpul actualizarilor. * / protected $ revisionable = [‘e-mail’, ‘nume’,];

Si asta este tot pentru a incepe!

Personalizare in L5

Comportament implicit :

spatiu de nume App \ Models; utilizati Illuminate \ Database \ Eloquent \ Model; utilizati Sofa \ Revisionable \ Laravel \ Revisionable; clasa Ticket extinde Model {use Revisionable; }
$ php artisan tinker >>> $ ticket = App \ Models \ Ticket :: first (); => <Aplicatie \ Modele \ Bilet> >>> $ revizie-> getDiff (); => [“client_id” => [“vechi” => “1”, “nou” => “101”], “element_id” => [“vechi” => “2”, “nou” => “1 “],” responsable_id “=> [” vechi “=>” 8 “,” nou “=>” 2 “]] >>> $ revizie-> vechi (‘item_id’); => “2” >>> $ revizie-> nou (‘item_id’); => “1” >>> $ revizie-> isUpdated (‘item_id’); => adevarat >>> $ revizie-> esteUpdated (‘nota’); => fals >>> $ revizie-> eticheta (‘item_id’); => “item_id” >>> $ revizie-> vechi; => [“defect” => “nie dziala”, “note” => “wrocilo na gwarancji”, “customer_id” => “1”, “item_id” => “2”, “responsable_id” => “8” , “status_id” => “6”] >>> $ revizie-> actiune; => “actualizat”

Dar iata unde puteti utiliza pachetul Presenter pentru a face ajustari utile:

spatiu de nume App \ Models; utilizati Illuminate \ Database \ Eloquent \ Model; utilizati Sofa \ Revisionable \ Laravel \ Revisionable; clasa Ticket extinde Model {use Revisionable; protected $ revisionPresenter = ‘Aplicatie \ Prezentatori \ Revizuiri \ Bilet’; }
spatiu de nume App \ Presenters \ Revisions; utilizati Sofa \ Revisionable \ Laravel \ Presenter; class Ticket extends Presenter {protected $ labels = [‘item_id’ => ‘Przedmiot’, ‘customer_id’ => ‘Klient’, ‘status_id’ => ‘Stare’, ‘responsable_id’ => ‘Serwisant’, ‘defect’ = > ‘Usterka’, ‘note’ => ‘Uwagi’,]; protected $ passThrough = [‘item_id’ => ‘item.name’, ‘customer_id’ => ‘client.name’, ‘responsable_id’ => ‘serviceman.name’, ‘status_id’ => ‘status.name’,] ; protejat $ actions = [‘created’ => ‘utworzony’, ‘updated’ => ‘edytowany’, ‘deleted’ => ‘usuniety’, ‘restaurat’ => ‘przywrocony’,]; }

atunci

$ php artisan tinker >>> $ ticket = App \ Models \ Ticket :: first (); => <App \ Models \ Ticket> >>> $ revision-> vechi (‘item_id’); // valoare preluata din relatie => “computer computer” >>> $ revizie-> nou (‘item_id’); // valoare preluata din relatia => “laptop acer” >>> $ revizie-> eticheta (‘item_id’); // eticheta personalizata definita in prezentator => “Przedmiot” >>> $ revision-> actiune; // numele actiunii personalizate definit in prezentator => “edytowany”