arubacao/friends

此包已被废弃且不再维护。未建议替代包。

在 Laravel 中管理好友

2.0.0 2016-06-20 11:37 UTC

This package is auto-updated.

Last update: 2021-05-09 22:10:29 UTC


README

此包未维护,仅作为快速破解。不要在生产代码中使用。

Friends (Laravel 5 包)

Build Status Latest Version SensioLabsInsight Quality Score Code Coverage codecov Software License

在 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 表名。
## 使用 ### 发送好友请求 #### 发送好友请求 ```php $user->sendFriendRequestTo($recipient); ``` `$user` 必须是 `User` 的实例,`$recipient` 必须是 `User` 的实例、`User` 数组或整数(用户 ID) #### 接受好友请求 ```php $user->acceptFriendRequestFrom($sender); ``` `$user` 必须是 `User` 的实例,`$sender` 必须是 `User` 的实例、`User` 数组或整数(用户 ID) #### 拒绝好友请求 ```php $user->denyFriendRequestFrom($sender); ``` `$user` 必须是 `User` 的实例,`$sender` 必须是 `User` 的实例、`User` 数组或整数(用户 ID) ### 我的好友 #### 删除好友 ```php $user->deleteFriend($douchebag); ``` `$user` 必须是 `User` 的实例,`$douchebag` 必须是 `User` 的实例、`User` 数组或整数(用户 ID) #### 获取好友 - 获取用户的全部好友 - `status` 总是 `1` *已接受*
$friends = $user->friends();

$user 必须是 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();

$user 必须是 User 的实例

$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();

$user 必须是 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
	}
},
{
	"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();

$users:

[{
	"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": []
}]
## 许可证

Friends 是在 MIT 许可证条款下分发的免费软件。

Analytics