如何在laravel的二叉树中注册用户[关闭]

Posted

技术标签:

【中文标题】如何在laravel的二叉树中注册用户[关闭]【英文标题】:How can register user in binary tree in laravel [closed] 【发布时间】:2021-12-10 20:26:06 【问题描述】:

我尝试让二进制的注册系统看起来像图片

这里是寄存器控制器

 namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use App\Models\MemberExtra;
use Carbon\Carbon;
use Illuminate\Support\Facades\Session;
use Illuminate\Auth\Events\Registered;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Validator;
class RegisterController extends Controller

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function __construct()
    
        $this->middleware('guest');
    

    public function index()
    
        return view('users.register');
    

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    protected function validator(array $data)
    
        return Validator::make($data, [
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6',
            'referrer_id' => 'required',
            'position' => 'required',
           
            'name' => 'required',
        ]);
    

    protected function create(array $data)
    

        $pin = substr(time(), 4);

        $ref_id = $data['referrer_id'];
        $poss = $data['position'];
        $posid =  getLastChildOfLR($ref_id,$poss);

       
        return User::create([
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'referrer_id' => $data['referrer_id'],
            'position' => $data['position'],
            
            'name' => $data['name'],
           
            'join_date' => Carbon::today(),
            
            'posid' => $posid,
           
        ]);
    

    public function signup(Request $request)
    
        $this->validator($request->all())->validate();
        event(new Registered($user = $this->create($request->all())));
        $this->guard()->login($user);
        MemberExtra::create([
           'user_id' => $user['id'],
           'left_paid' => 0,
           'right_paid' => 0,
           'left_free' => 0,
           'right_free' => 0,
           'left_bv' => 0,
           'right_bv' => 0,
        ]);
        updateMemberBelow($user['id'], 'FREE');
        return $this->registered($request, $user) ?: redirect()->route('users.register');
    


   



模式

 protected $fillable = ['referrer_id', 'name', 'password',
    'position','join_date',
    'email','posid'
    ];

   protected $table ='member_extras';
    protected $fillable = [
        'user_id',
        'left_paid',
        'right_paid',
        'left_free',
        'right_free',
        'left_bv',
        'right_bv',
    ];

尝试将数据插入用户和成员区域 但什么也没发生。

这是刀片形式

<h3>Add Users</h3>

<div class="row">

    <div class="col-md-12 col-sm-12 col-xs-12">

      
          <!-- Alert message (start) -->
        @if(Session::has('message'))
        <div class="alert  Session::get('alert-class') ">
          <span style="color:green"> Session::get('message') </span>
        </div>
        @endif
       
             <form action="route('user.signup')" method="POST" id="subjectForm">

                csrf_field()
                
                <div class="col-md-6">
                            <label for="fullname">Referrer Name</label>
                            <input class="form-styling" type="text" value="old('ref_name')" id="ref_name" required placeholder=""/>
                            <div id="ref">

                            </div>
                            @if ($errors->has('referrer_id'))
                                <span class="help-block">
                                    <strong> $errors->first('referrer_id') </strong>
                                </span>
                            @endif
                        </div>

                        <div class="col-md-6">

                      <label for="Select Position">Select Position</label>
                      <select class="select_panel" id="position" name="position" required>
                       <option disabled selected>Select Position</option>
                       <option value="L">Left</option>
                       <option value="R">Right</option>
                       </select>
                      
                       <div id="ref_pos">

                       </div>
                       @if ($errors->has('position'))
                        <span class="help-block">
                        <strong> $errors->first('position') </strong>
                        </span>
                         @endif
                        </div>

                        <div class="col-md-6">
                            <label for=" First Name">Name</label>
                            <input value="old('name')" class="form-styling" required type="text" name="name">
                            @if ($errors->has('name'))
                                <span class="help-block">
                                    <strong> $errors->first('name') </strong>
                                </span>
                            @endif
                        </div>
                        <div class="col-md-6">
                            <label for="email">Email</label>
                            <input  type="text" class="form-styling" required name="email" value="old('email')">
                            @if ($errors->has('email'))
                                <span class="help-block">
                                    <strong> $errors->first('email') </strong>
                                </span>
                            @endif
                        </div>

                        <div class="col-md-6">
                                <label>
                                    Password
                                </label>
                                <input required type="password"  class="form-styling"  name="password">
                                @if ($errors->has('password'))
                                    <span class="help-block">
                                                            <strong> $errors->first('password') </strong>
                                                        </span>
                                @endif
                            </div>

                            <button type="submit" class="btn btn-primary">Register</button>
      
</form>


   <form action="route('login')" id="subjectForm">
       <button type="submit" class="btn btn-primary">Login</button>
   </form>
    </div>
</div>

这里是迁移

 */
    public function up()
    
        Schema::create('users', function (Blueprint $table) 
            $table->id();
            $table->string('referrer_id');
            $table->string('position');
            $table->string('name')->unique();
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->integer('posid');
            $table->string('join_date');
            $table->rememberToken();
            $table->timestamps();
        );
    


这里是数据库

当新用户注册时,我手动插入了 admindata 以在引用名称中调用 admin 用户名。但它不起作用。 我从二进制 mlm 项目源代码(laravel 5.5 ver)中复制了所有代码。 如图所示,如何正确注册新用户? 它显示推荐人姓名匹配,您将加入 - 某人 id。 在我的尝试中,它不起作用。

我正在学习如何构建二进制传销网站,我在注册阶段失败了,

编辑

我得到了推荐人名称和选择位置的解决方案 但是当点击注册按钮时 什么都没发生 发布方法不起作用。注册时也不会显示任何错误。没有数据插入数据库。 请检查控制器代码有什么问题

【问题讨论】:

嘿,我们鼓励您输入尽可能多的代码/日志,而不是使用屏幕截图。这有助于提高可读性 【参考方案1】:

我看到了几个可能是问题的错误, 在刀片中:

1)

 <input class="form-styling" type="text" value="old('ref_name')" id="ref_name" required placeholder=""/>

没有name=""参数

    在迁移中你得到了 $table-&gt;string('name')-&gt;unique(); 唯一但在验证中不是 'name' =&gt; 'required',, 当你像这里一样进行批量分配时$this-&gt;validator($request-&gt;all())-&gt;validate(); event(new Registered($user = $this-&gt;create($request-&gt;all()))); 您可以在此处阅读详细信息 mass assignment ,为此您需要配置模型 $fillable = []$guarded = [] 参数才能这样做,但是当我只使用可填充时我遇到了这样的问题,无论如何我都无法进行质量分配,而不仅仅是使用 $guarded = [] 并且工作正常,所以也试试这个。

【讨论】:

在referrer_id 中遇到问题,需要插入referrer 名称、示例(admin),但不起作用,它显示错误,不允许插入admin.it 显示需要referrer_id。我不明白他们如何链接referrer_id和引用名称在同一个输入位置 这部分,我解决了,但仍然没有将数据插入数据库。

以上是关于如何在laravel的二叉树中注册用户[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在任何二叉树中找到两个节点的最低共同祖先?

C ++在不同类型的二叉树中搜索二叉树

求二叉树中最大的二叉搜索子树的头节点

如何把一个有序的整数数组放到二叉树中

如何在任何二叉树中找到两个节点的最低共同祖先?

LeetCode-在受污染的二叉树中查找元素