资讯专栏INFORMATION COLUMN

一个用于收藏文章的扩展包 Laravel Collect

Youngs / 673人阅读

摘要:是我开发的一个收藏文章的扩展,借鉴于,我也有幸参加了社区对该扩展的外文翻译文章为你的模型添加喜欢和讨厌功能。但是对于想学习开发扩展包的同学还是不错的。最近发现已经有人使用我的扩展包到项目里,我更有动力不断更新完善。

Laravel Collect 是我开发的一个收藏文章的扩展,借鉴于 cybercog/laravel-love ,我也有幸参加了社区对该扩展的外文翻译文章 为你的 Eloquent 模型添加喜欢和讨厌功能。我的初衷是学习怎么开发 Laravel 扩展包,所以实现的功能可能比较简单,请大神勿喷。但是对于想学习开发 Laravel 扩展包的同学还是不错的。望大家点赞支持,感谢。

最近发现已经有人使用我的扩展包到项目里,我更有动力不断更新完善。fight!

安装

通过 composer 安装,命令如下:

$ composer require vetor/laravel-collect

我们需要执行模型迁移命令,将 Collections 表发布到我们的数据库:

$ php artisan migrate
使用

在我们的收藏者表,即 User 表里需要实现 CollectorContract 接口,并引用 Collector trait:

use IlluminateFoundationAuthUser as Authenticatable;
use VetorLaravelCollectCollectorModelsTraitsCollector;
use VetorContractsCollectCollectorModelsCollector as CollectorContract;

class User extends Authenticatable implements CollectorContract
{
    use Collector;
}

如果用户需要收藏文章,在 Article 表里实现 CollectableContract 接口并引用 Collectable trait 即可:

use VetorLaravelCollectCollectableModelsTraitsCollectable;
use VetorContractsCollectCollectableModelsCollectable as CollectableContract;

class Article extends Model implements CollectableContract
{
    use Collectable;
}
可用的方法

对于用户来说,可用的方法有:

// 收藏
$user->collect($article);

// 取消收藏
$user->cancelCollect($article);

// 用户的所有收藏记录
$user->collections;

// 用户收藏的文章记录
$user->collectionsWhereCollectable(Article::class);

文章可用的方法有:

// 收藏
$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 。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31652.html

相关文章

  • 无头浏览器测试可视化:Laravel Dusk 控制台入门指南

    摘要:通过添加此功能,该程序包将启用记录请求和响应信息所需的功能。是一条普通控制器路由,用于输出控制台的视图。收集浏览器行为这是整个扩展包最乏味的部分。 Laravel Dusk 控制台是一款 Laravel 扩展包,能够为你的 Dusk 测试套件提供漂亮的可视面板。通过它,你可以可视化运行 Dusk 测试时涉及的各个步骤,以及查看每个步骤的 DOM 快照。这对于调试浏览器测试、并搞清楚后台...

    levius 评论0 收藏0
  • 十五个常用 Laravel 集合(Collection)

    摘要:将返回通过回调真值测试的第一个项的键。方法将集合分割为多个给定大小的较小集合。它可用于在任何位置的调试和查找集合内的内容。方法用于遍历整个集合。这对集合同样有效。它将导致由第二个参数的值作为键的集合。它接受回调并传递并将集合传递给它。 showImg(https://segmentfault.com/img/remote/1460000018924972); 文章转自:https://...

    alphahans 评论0 收藏0
  • Debugging collections(译)

    摘要:注本文是翻译写的关于调试技巧,读完以后很实用,分享给大家阅读过程中,翻译有错误的希望大家指正原文链接最近我一直在使用的,如果你还不了解,我简单说下一个集合就是一个功能强大的数组有很多强大处理其内部数据的函数但是唯一让我头疼的地方是如何调试的 注:本文是翻译Freek Van der Herten写的关于Collection调试技巧,,读完以后很实用,分享给大家.阅读过程中,翻译有错误的...

    lunaticf 评论0 收藏0
  • 教程:Laravel 集合(Collection)基础用法

    摘要:方法可以传一个单一值,或一组键值对或者一个回调函数,然后它会返回一个布尔值来告知目标内容是否在集合中。排序方法接受一个键或回调函数参数用于对集合进行排序。获取一个集合中所有数字的和方法通过回调函数传递每个数据项。 showImg(https://segmentfault.com/img/remote/1460000018726031?w=1252&h=640); 文章转自:https:...

    CoderStudy 评论0 收藏0
  • 【日常手记】之Laravel5.3

    摘要:个人网站最近刚写了一个手机在线播放的电影站使用日常手记更新使用的的查询作用域的本地作用域去自定义可复用的约束集合,方便链式调用什么是本地查询作用域本地作用域允许我们定义通用的约束集合以便在应用中复用。 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站:...

    kidsamong 评论0 收藏0

发表评论

0条评论

Youngs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<