tobischulz/laravel-favoritable

为每个模型添加一个简单的方式使其可收藏

1.4.1 2024-02-12 13:04 UTC

README

Latest Version on Packagist Total Downloads

为每个模型添加一个简单的方式使其可收藏。

安装

您可以通过composer安装此包

composer require tobischulz/laravel-favoritable

发布所有必需的资产

php artisan vendor:publish --provider=TobiSchulz\Favoritable\FavoritableServiceProvider

迁移您的数据库

php artisan migrate

准备

将特性添加到您希望可收藏的Eloquent模型中。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use TobiSchulz\Favoritable\Traits\Favoriteable;

class Post extends Model
{
    use Favoriteable;

    // ...
}

将特性添加到将有收藏的用户模型中。

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;
use TobiSchulz\Favoritable\Traits\HasFavorites;

class User extends Authenticatable
{
    use HasFavorites;

    // ...
}

使用方法

<?php

/**
 * API for Favoritable
 */
$post = Post::find(1);

$post->addFavorite();   // adds this post to favorites to current user
$post->removeFavorite();    // remove this post from favorites
$post->toggleFavorite();    // toggle this post as favorite
$post->isFavorited();   // returns boolean for this post favorite state


$post = Post::find(1);
$user = User::find(2);

$post->addFavorite($user);  // adds favorite for this post and a specific user.

/**
 * API for HasFavorites
 */
$user = User::find(1);

$user->favorites(Post::class);  // returns collection of Post::class favorites

测试

进行中

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何与安全相关的问题,请通过tobias@byte.software 发送电子邮件,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件