Laravel 如何在这个二进制转诊系统中插入职位id

Laravel 如何在这个二进制转诊系统中插入职位id,laravel,Laravel,我创建了带有推荐链接的用户注册系统。 新用户可以在这个推荐id下轻松注册,我将新用户设置为左右位置。 但我仍然需要重点是在用户表中添加位置id,因为二叉树系统,新用户将放置在右树和左树中。 因此,如果现有用户在他前面,那么位置将位于现有用户的下方。 为此,我想将positionid设置为对这个二叉树用户进行计数和排序 这是我的注册控制器 protected function create(array $data) { $referred_by = Cookie::get('referra

我创建了带有推荐链接的用户注册系统。 新用户可以在这个推荐id下轻松注册,我将新用户设置为左右位置。 但我仍然需要重点是在用户表中添加位置id,因为二叉树系统,新用户将放置在右树和左树中。 因此,如果现有用户在他前面,那么位置将位于现有用户的下方。 为此,我想将positionid设置为对这个二叉树用户进行计数和排序

这是我的注册控制器

  protected function create(array $data)
{
  $referred_by = Cookie::get('referral');
     return  $user =  User::create([
        'name' => $data['name'],
        'email' => $data['email'],
       'position' => $data['position'],
        'password' => Hash::make($data['password']),
        'affiliate_id' => str_random(10),
        'referred_by'   => $referred_by,
        //'position_id' => ?


    ]);

}
这是我的用户表

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');

        $table->string('name');
        $table->string('position');
        $table->string('email')->unique();
      //  $table->string('posid');
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}



Schema::create('users', function (Blueprint $table) {
 $table->increments('id');
 $table->unsignedInteger('parent_id')->nullable(); // root user will have null parent_id
 $table->string('name');
 $table->string('position');
 $table->string('email')->unique();
 $table->string('password');
 $table->string('posid');
 $table->rememberToken();
 $table->timestamps();

 $table->foreign('parent_id')->references('id')->on('users')->onDelete('cascade'); // cascade delete children when deleting parent
}))

如何编辑registercontroller以在数据库中获取此职位id。 我可以为在系统中注册的每个用户id使用父id吗。 我怎么能用它呢


请帮帮我

您肯定需要
parent\u id
。当您将用户注册为某人的子女时,您必须知道将要获得新子女的用户,因此您将知道
家长id
。查询父对象时,您有三个可能的选项:1.)两个位置都是空闲的(左侧和右侧),因此您可以允许用户选择要拾取的一侧;2.)一侧将被占用,因此您只剩下一个选项(无论是哪个选项);3.)两个分支都已被占用,这将停止这种二进制系统中的进一步处理。因此,首先查询并获取引用其中一个的用户,并检查该用户是否已经有两个引用的子项,以了解您是否应该继续或停止处理。您好Tpojka,您的建议很好,是的,我需要该子项的父项id,我可以在用户表中使用parent_id吗?我编辑了上面的问题。请检查它,以及如何使用parent_id作为registercontroller bro中的position_id调用。尝试:
公共函数子函数(){return$this->hasMany('App\user',parent_id',id');}
公共函数父函数(){return this->hasOne('App user',id',parent_id');}
请帮助解决此问题,兄弟