hamedov / laravel-favorites
在 Laravel 应用中管理用户收藏。
4.0.0
2022-10-22 13:35 UTC
Requires
- php: ^8.0.2
- illuminate/database: ^9.0
- illuminate/support: ^9.0
README
在 Laravel 应用中管理用户收藏。
安装
composer require hamedov/laravel-favorites
发布配置文件
php artisan vendor:publish --provider="Hamedov\Favorites\FavoritesServiceProvider" --tag="config"
在配置文件中设置用户模型
- 确保在迁移之前执行此操作
return [ 'user_model' => \App\User::class, ];
执行迁移
php artisan migrate
设置用户模型
- 将
Hamedov\Favorites\HasFavorites
特性添加到您的用户模型class User extends Model { use HasFavorites; }
使用
-
将项目添加到用户收藏
$book = Book::find(1); $user->addFavorite($book); $ad = Ad::find(1); $user->addFavorite($ad);
-
从用户收藏中删除项目
$book = Book::find(1); $user->removeFavorite($book);
-
获取特定类型的用户收藏
$favorites = $user->favorites('App\Book')->get(); // Or $favorites = $user->favorites('App\Book')->paginate(10);
-
获取特定类型的用户收藏 ID
// This will return a collection of book ids // Passing null as a parameter will return all ids $favorites = $user->favoriteIds('App\Book');
-
获取带有对应类型的用户收藏 ID,即,连接表条目
$favorables = $user->favorables()->get(); // Or pass type as parameter to get only specific type $favorables = $user->favorables('App\Ad')->get();
-
删除所有用户收藏
$user->flushFavorites(); // Or $user->flushFavorites('App\Book');
可用作用域
-
hasFavorite
作用域:已将特定模型添加到收藏的用户$book = Book::find(1); $users = App\User::hasFavorite($book)->get();
-
hasFavoriteOfType
作用域:已将特定类型的任何模型添加到收藏的用户$users = App\User::hasFavoriteOfType('App\Book')->get();
许可证
在 Mit 许可证下发布,请参阅 LICENSE