Laravel Favorite

❤️ Functia preferata de utilizator pentru aplicatia Laravel.

Se instaleaza

$ compozitor necesita overtrue / laravel-favorite -vvv

Configurare

Acest pas este optional

$ php artisan vendor: publish –provider = “Overtrue \\ LaravelFavorite \\ FavoriteServiceProvider” –tag = config

Migratii

Acest pas este, de asemenea, optional, daca doriti sa personalizati tabelul de preferinte, puteti publica fisierele de migrare:

$ php artisan vendor: publish –provider = “Overtrue \\ LaravelFavorite \\ FavoriteServiceProvider” –tag = migrations

Utilizare

Trasaturi

Overtrue \ LaravelFavorite \ Traits \ Favoriter

utilizati Ilumineaza \ Notificari \ Notificabile; utilizati Illuminate \ Contracts \ Auth \ MustVerifyEmail; utilizati Illuminate \ Foundation \ Auth \ User ca autentificabil; utilizati Overtrue \ LaravelFavorite \ Traits \ Favoriter; clasa User extends Authenticatable {use Favoriter; <…>}

Overtrue \ LaravelFavorite \ Traits \ Favoriteable

utilizati Illuminate \ Database \ Eloquent \ Model; utilizati Overtrue \ LaravelFavorite \ Traits \ Favoriteable; clasa Post extinde Modelul {use Favoriteable; <…>}

API

$ utilizator = Utilizator :: gasi (1); $ post = Post :: find (2); $ utilizator-> favorit ($ post); $ utilizator-> nefavorabil ($ postare); $ user-> toggleFavorite ($ post); $ user-> getFavoriteItems (Post :: class) $ user-> hasFavorited ($ post); $ post-> hasBeenFavoritedBy ($ user);

Obtineti favoritori de obiecte:

foreach ($ post-> favoriters as $ user) {// echo $ user-> name; }

Obtineti modelul preferat de la utilizator.

Modelul de trasaturi Favoriter folosit poate obtine cu usurinta modelele favorabile pentru a face ceea ce doriti. * nota: aceasta metoda va returna un Illuminate \ Database \ Eloquent \ Builder *

$ user-> getFavoriteItems (Post :: class); // Faceti mai mult $ favortePosts = $ user-> getFavoriteItems (Post :: class) -> get (); $ favortePosts = $ user-> getFavoriteItems (Post :: class) -> paginate (); $ favortePosts = $ user-> getFavoriteItems (Post :: class) -> where (‘title’, ‘Laravel-Favorite’) -> get ();

Agregari

// toate $ user-> favorite () -> count (); // cu tipul $ user-> favorite () -> withType (Post :: class) -> count (); // favoriters count $ post-> favoriters () -> count ();

Lista cu atributul * _count:

$ utilizatori = Utilizator :: cuCount (‘favorite’) -> get (); foreach ($ utilizatori ca $ utilizator) {echo $ user-> favorites_count; } // pentru modele favorabile: $ posts = Post :: withCount (‘favoriters’) -> get (); foreach ($ postari ca $ postare) {echo $ post-> favorite_count; }

Atasati statutul de utilizator preferat la o colectie favorabila

Puteti utiliza Favoriter :: attachFavoriteStatus (Colectie $ votabile) pentru a atasa statutul de utilizator preferat, acesta va seta atributul has_favorited pentru fiecare model de $ favoriteables:

Pentru model

$ post = Post :: find (1); $ post = $ user-> attachFavoriteStatus ($ post); // result [“id” => 1 “title” => “Adaugati asistenta de conectare socialite.” “created_at” => “2021-05-20T03: 26: 16.000000Z” “updated_at” => “2021-05-20T03: 26: 16.

padre enseña a follar a su hija folladas dormidas
caras llenas de semen monjas lesvianas
mi primera follada xxxxporno
rebeca linares masaje mamada a dos bocas
porno parejas maduras españolas sexo
se folla a su compañero de piso porno español incestos
desvirga a su hermana zoofilia con cabras
nonude model lesbianas reales
se folla a su hijo xxx incesto real
videos gays argentinos incesto subtitulado en español
peliculas porno subtituladas en español porno retro maduras
pierre wodman incesto xxx
obliga a su hermana a follar jovencita masturbandose
chicas corriendose a chorros videos culos
maduras en grupo chicos guapos desnudos
tetas en las playas madre follada a la fuerza
porno france pepe porno
porno guarras españolas compilacion anal
chuponas videos incesto online
maduras buenorras negros follando maduras

000000Z” “has_favorited” => true],

Pentru colectie | Paginator | LengthAwarePaginator | matrice:

$ posts = Post :: vechi (‘id’) -> get (); $ posts = $ user-> attachFavoriteStatus ($ posts); $ posts = $ posts-> toArray (); // rezultat [[“id” => 1 “title” => “Post title1” “created_at” => “2021-05-20T03: 26: 16.000000Z” “updated_at” => “2021-05-20T03: 26 : 16.000000Z “” has_favorited “=> true], [” id “=> 2” title “=>” Post title2 “” created_at “=>” 2021-05-20T03: 26: 16.000000Z “” updated_at “=> “2021-05-20T03: 26: 16.000000Z” “has_favorited” => fasle], [“id” => 3 “title” => “Post title3” “created_at” => “2021-05-20T03: 26: 16.000000Z “” updated_at “=>” 2021-05-20T03: 26: 16.000000Z “”

Pentru paginare

$ posts = Post :: paginate (20); $ user-> attachFavoriteStatus ($ posts);

Numarul N + 1

Pentru a evita problema N + 1, puteti utiliza incarcarea dornica pentru a reduce aceasta operatiune la doar 2 interogari. Cand interogati, puteti specifica ce relatii ar trebui incarcate cu nerabdare folosind metoda cu:

// Favoriteri $ utilizatori = Utilizator :: cu (‘favorite’) -> get (); foreach ($ utilizatori ca $ utilizator) {$ user-> hasFavorited ($ post); } // Favoriteable $ posts = Post :: with (‘favorite’) -> get (); // sau $ posts = Post :: with (‘favoriters’) -> get (); foreach ($ postari ca $ postare) {$ post-> isFavoritedBy ($ user); }

Evenimente

Descriere eveniment Overtrue \ LaravelFavorite \ Events \ Favorited Declansat la crearea relatiei. Overtrue \ LaravelFavorite \ Events \ Unfavorited Declansat atunci cand relatia este stearsa.

Pachete conexe

  • Urmariti: prea adevarat / laravel-urmati
  • Ca: prea adevarat / asemanator laravelului
  • Favorite: overtrue / laravel-favorite
  • Abonati-va: overtrue / laravel-subscribe
  • Vot: prea adevarat / laravel-vot
  • Marcaj: overtrue / laravel-bookmark (lucreaza in curs)

Contribuind

Puteti contribui in unul din cele trei moduri:

  1. Inregistrati rapoarte de erori utilizand urmaritorul de probleme.
  2. Raspundeti la intrebari sau remediati erorile de pe urmaritorul de probleme.
  3. Contribuiti cu functii noi sau actualizati wiki.

Procesul de contributie la cod nu este foarte formal. Trebuie doar sa va asigurati ca urmati liniile directoare de codare PSR-0, PSR-1 si PSR-2. Orice contributie la cod nou trebuie sa fie insotita de teste unitare, acolo unde este cazul.

PHP 扩展 包 开发

想 知道 如何 从零开始 构建 PHP 扩展 包?

请 关注 我 的 实战 课程 , 我 会 在 此 课程 中 分享 一些 扩展 开发 经验 —— 《PHP 扩展 包 实战 教程 – 从 入门 到 发布》

Licenta

MIT