如何在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->string('name')->unique();
唯一但在验证中不是 'name' => 'required',
,
当你像这里一样进行批量分配时$this->validator($request->all())->validate(); event(new Registered($user = $this->create($request->all())));
您可以在此处阅读详细信息 mass assignment ,为此您需要配置模型 $fillable = []
或 $guarded = []
参数才能这样做,但是当我只使用可填充时我遇到了这样的问题,无论如何我都无法进行质量分配,而不仅仅是使用 $guarded = []
并且工作正常,所以也试试这个。
【讨论】:
在referrer_id 中遇到问题,需要插入referrer 名称、示例(admin),但不起作用,它显示错误,不允许插入admin.it 显示需要referrer_id。我不明白他们如何链接referrer_id和引用名称在同一个输入位置 这部分,我解决了,但仍然没有将数据插入数据库。以上是关于如何在laravel的二叉树中注册用户[关闭]的主要内容,如果未能解决你的问题,请参考以下文章