• 1. 孤独な巡礼 - 川井憲次
  • 2. Moon_River - Audrey_Hepburn
person

1.在VScode软件的拓展选项中搜索Setting Sync插件并安装

2.打开页面 https://github.com/settings/tokens,点击Generate new token

写入token的描述,勾选gist然后进入下一步

然后便会生成一个access token ,把他保存起来(放到本地文件夹或者云盘,后面配置要用到它)

3.ctrl + shift + p 输入Sync 选择高级选项中的Sync:Edit Extension Local Setting 打开syncLocalSettings.json文件,把在github gits 上得到的acess token复制到 token的文本中

4.ctrl + shift + p 输入Sync 点击Sync:上传设置 ,开始上传配置
5.上传成功后,控制台会出现一系列信息 ,保存Github token 和 Github Gist这两个信息

本人的vscode 配置

GitHub Token: bec0ce82c61c79f0a2f1e09b1f55f70231f08fac
GitHub Gist:

8636943e2185482562f8c79af0488986
GitHub Gist Type: Secret

保存好你生成的GitHub Token和Gist Id.
————————————————

原文链接:https://jingyan.baidu.com/article/546ae185ea92421149f28ce2.html

粉丝关系

 public function up()
    {
        Schema::create('followers', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('user_id');
            $table->integer('follower_id');
            $table->timestamps();
        });
    }

定义关联关系
user.php

   /**
     * followers 来获取粉丝
     */
    function followers(){
        return $this->belongsToMany(User::class,'followers','user_id','follower_id');
    }

     /**
      * 关注      
      * followings 来获取用户  
      */
    function followings(){
       return $this->belongsToMany(User::class,'followers','follower_id','user_id');
    }

使用 Tinker 来模拟用户的关注和取消关注操作:

php artisan tinker

当 id 为 1 的用户去关注 id 为 2 和 id 为 3 的用户时,可使用 attach 方法来进行关注,如下所示:

>>> $user = App\Models\User::find(1)
>>> $user->followings()->attach([2, 3])

对用户进行关注之后,我们可以通过下面方法来输出关联的 id 数组查看创建结果:

>>> $user->followings()->allRelatedIds()->toArray()
=> [
     2,
     3,
   ]
attach 方法接着对 id 为 2 的用户进行关注 会重复 我们使用 sync 方法

最后我们可以借助 detach 来对用户进行取消关注的操作,取消关注 2 号和 3 号用户:

$user->followings()->detach([2,3])

在用户模型中定义关注(follow)和取消关注(unfollow)的方法如下:

    public function follow($user_ids)
    {
        if ( ! is_array($user_ids)) {
            $user_ids = compact('user_ids');
        }
        $this->followings()->sync($user_ids, false);
    }

    public function unfollow($user_ids)
    {
        if ( ! is_array($user_ids)) {
            $user_ids = compact('user_ids');
        }
        $this->followings()->detach($user_ids);
    }

判断当前登录的用户 A 是否关注了用户 B,

    public function isFollowing($user_id)
    {
        return $this->followings->contains($user_id);
    }

示例数据

目前并没有一个用户拥有大量的粉丝或关注了多个人,接下来我们需要用数据填充的方式,为第一个用户添加假数据,让他拥有一些关注人和粉丝。

首先我们需要生成一个数据填充文件。`php
php artisan make:seeder FollowersTableSeeder

假数据的生成代码如下所示:

class FollowersTableSeeder extends Seeder
{

public function run()
{
    $users = User::all();
    $user = $users->first();
    $user_id = $user->id;

    // 获取去除掉 ID 为 1 的所有用户 ID 数组
    $followers = $users->slice(1);
    $follower_ids = $followers->pluck('id')->toArray();

    // 关注除了 1 号用户以外的所有用户
    $user->follow($follower_ids);

    // 除了 1 号用户以外的所有用户都来关注 1 号用户
    foreach ($followers as $follower) {
        $follower->follow($user_id);
    }
}

}

新评论