LaravelCollect是我开发的一个文章收藏的扩展,借用了cybercog/laravel-love,我也有幸参与了社区对这个扩展的外语翻译你的雄辩模型添加了喜欢和不喜欢的功能。本人初衷是学习Laravel扩展包开发,所以实现的功能可能比较简单,请勿喷。但是对于想学习开发Laravel扩展包的同学还是不错的。希望大家喜欢和支持,谢谢。最近发现有人已经在项目中使用了我的扩展包,更有动力不断更新完善。斗争!安装是通过composer安装的,命令如下:$composerrequirevetor/laravel-collect我们需要执行模型迁移命令将Collections表发布到我们的数据库中:$phpartisanmigrate我们的collector表中使用,即User表需要实现CollectorContract接口,引用Collectortrait:useIlluminate\Foundation\Auth\UserasAuthenticatable;useVetor\Laravel\Collect\Collector\Models\Traits\Collector;useVetor\Contracts\Collect\Collector\Models\CollectorasCollectorContract;classUserextendsAuthenticatableimplementsCollectorContract{useCollector;}如果用户需要收藏文章,在Article表中实现CollectableContract接口,引用Collectabletrait:useVetor\Laravel\Collect\Collectable\Models\Traits\Collectable;使用Vetor\Contracts\Collect\Collectable\Models\Collectable作为CollectableContract;类ArticleextendsModelimplementsCollectableContract{useCollectable;}可用方法对于用户,可用方法有://收藏$user->collect($article);//取消收藏$user->cancelCollect($article);//该用户的所有收藏记录$user->collections;//记录用户收藏的文章$user->collectionsWhereCollectable(Article::class);Text章节可用的方法有://收集$article->collect();//取消收集(默认为当前用户,用户实例可以作为参数传入)$article->cancelCollect();//获取文章集合情况$article->collections();//获取文章集合的个数$article->collections_count;//按照集合个数排序(升序'asc';降序'desc';默认为升序)Article::orderByCollectionsCount()->get();我们可以使用下面的方法获取集合表中的所有文章:Collection::whereCollectable(Article::class)->get();更多代码参考Github仓库vetor/laravel-collect,也欢迎大家提出自己的想法,指出不足之处,一起学习进步,再次感谢cybercog/laravel-love。
