arubacao / friends
此包已被废弃且不再维护。未建议替代包。
在 Laravel 中管理好友
2.0.0
2016-06-20 11:37 UTC
Requires
- php: >=5.6.0
- illuminate/database: ^5.2
- illuminate/support: ^5.2
Requires (Dev)
- graham-campbell/testbench: ^3.0
- mockery/mockery: dev-master
- phpunit/phpunit: ^4.1
This package is auto-updated.
Last update: 2021-05-09 22:10:29 UTC
README
此包未维护,仅作为快速破解。不要在生产代码中使用。
Friends (Laravel 5 包)
在 Laravel 和 Lumen 中组织用户间的好友和关系。
Friends 提供了一切,让您轻松实现自己的类似于 Facebook 的好友系统。
用户可以
- 发送好友请求
- 接受好友请求
- 拒绝好友请求
- 删除好友
内容
## 安装对于 Laravel 5.*
使用 Composer 引入包
composer require arubacao/friends
在 config/app.php
中注册服务提供者。
包含服务提供者在 config/app.php
中。
'providers' => [ ... Arubacao\Friends\FriendsServiceProvider::class, ... ];
运行迁移
发布迁移并迁移数据库
php artisan vendor:publish --provider="Arubacao\Friends\FriendsServiceProvider"
php artisan migrate
迁移后,将创建1个新表
friends
— 存储用户之间 关系/友情vendor:publish
命令也会在您的配置目录中创建一个 friends.php
文件。
默认配置对于大多数应用程序来说应该可以正常工作。
否则请查看 配置。
准备用户模型
在 User
模型中包含 Friendable
特性
use Arubacao\Friends\Traits\Friendable; class User extends Model { use Friendable; // Add this trait to your model ... }
然后您就可以开始了。
## 配置配置文件 friends.php
(可选)
在您的配置文件夹中找到 friends.php
。请确保您之前已发布此软件包。
user_model
— 这是 Friends 使用的应用程序的User
模型。users_table
— 这是 Friends 使用的应用程序的users
表名。
$friends = $user->friends();
[{ "id": 3, "name": "harri121", "created_at": "2016-06-18 19:08:45", "updated_at": "2016-06-18 19:08:45", "pivot": { "sender_id": 1, "recipient_id": 3, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 22:56:40", "status": 1 } }]#### 获取待处理好友请求 - 获取向 `$user` 发送好友请求的所有用户 - `status` 总是 `0` *待处理* - `recipient_id` 总是 `$user` 的 `id`
$friends = $user->incoming_friends();
[{ "id": 3, "name": "ejoebstl", "created_at": "2016-06-18 19:08:45", "updated_at": "2016-06-18 19:08:45", "pivot": { "sender_id": 3, "recipient_id": 1, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 22:56:40", "status": 0 } }]#### 获取任何好友 **注意:** > 就像现实生活中一样,'朋友' 或 '友情' 可以是任何东西,也包括负面的东西 ;) 获取与
$user
有任何类型友情/关系的所有用户 $friends = $user->any_friends();
[{ "id": 3, "name": "harri121", "created_at": "2016-06-18 19:08:45", "updated_at": "2016-06-18 19:08:45", "pivot": { "sender_id": 1, "recipient_id": 3, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 22:56:40", "status": 1 } }, { "id": 2, "name": "ejoebstl", "created_at": "2016-06-18 19:08:41", "updated_at": "2016-06-18 19:08:41", "pivot": { "recipient_id": 1, "sender_id": 2, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 19:53:27", "status": 0 } }]### 关系 #### 与某人有关联 ```php $user->hasRelationshipWith($person, $status); ``` `$user` 必须是 `User` 实例 `$person` 必须是 `User` 实例、`User` 数组或整数(用户 ID) `$status` 必须是整数数组(`Status`) #### 获取与某人有关联 ```php $user->getRelationshipWith($person, $status); ``` `$user` 必须是 `User` 实例 `$person` 必须是 `User` 实例、`User` 数组或整数(用户 ID) `$status` 必须是整数数组(`Status`) #### 检查是否有来自某人的待处理请求 ```php $user->hasPendingRequestFrom($person); ``` `$user` 必须是 `User` 实例 `$person` 必须是 `User` 实例、`User` 数组或整数(用户 ID) ### 查询包括关系的用户
$users = \App\User::whereIn('id', [2,3,4]) ->includeRelationshipsWith(1) ->get();
[{ "id": 2, "name": "ejoebstl", "created_at": "2016-06-18 19:08:41", "updated_at": "2016-06-18 19:08:41", "friends_i_am_sender": [{ "id": 1, "name": "arubacao", "created_at": "2016-06-18 19:08:35", "updated_at": "2016-06-18 19:08:35", "pivot": { "sender_id": 2, "recipient_id": 1, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 19:53:27", "status": 0 } }], "friends_i_am_recipient": [] }, { "id": 3, "name": "harri121", "created_at": "2016-06-18 19:08:45", "updated_at": "2016-06-18 19:08:45", "friends_i_am_sender": [], "friends_i_am_recipient": [{ "id": 1, "name": "arubacao", "created_at": "2016-06-18 19:08:35", "updated_at": "2016-06-18 19:08:35", "pivot": { "recipient_id": 3, "sender_id": 1, "created_at": "2016-06-19 19:53:27", "updated_at": "2016-06-19 22:56:40", "status": 1 } }] }, { "id": 4, "name": "random_user", "created_at": "2016-06-19 19:55:25", "updated_at": "2016-06-19 19:55:25", "friends_i_am_sender": [], "friends_i_am_recipient": [] }]## 许可证