[英]Laravel 5.5 Checking if the data is on the database
任何人都可以帮助我。 我是laravel开发的新手。
table name
*Masterlist
*Users
列名
Masterlist = [id,name,date_of_birth,course];
Users = [id,name,date_of_birth,course];
我在RegisterController.php
工作
这个流程是..
用户注册需要检查主列表数据的name,date_of_birth,course
如果用户注册等于主列表数据的数据,则注册将成功,然后数据将保存到用户表。
谢谢你的帮助。
假设您的MasterList
是表MasterList
模型。 然后,您可以先检查您的masterList
是否存在您的数据,如果存在,请像下面这样进行user registration
$masterList = MasterList::where('name',$name)->where('date_of_birth',$date_of_birth)->where('course',$course)->first();
if($masterList!=null){
///Your user registration process
}
而且,如果您要从$request
对象获取数据,则-
$masterList = MasterList::where('name',$request->input('name'))->where('date_of_birth',$request->input('date_of_birth'))->where('course',$request->input('course'))->first();
if($masterList!=null){
///Your user registration process
}
要redirect
并显示error message
您可以在if语句后执行以下操作:
return redirect()->back()->with([
'error' => 'Sorry! You are not listed in MasterList!!',
])->withInput();
在控制器中创建一个验证器。
$validator = Validator::make()
创建自定义规则。
php artisan make:rule filePath
将MasterList和Users数据发送到您的规则(创建规则实例时),最后,比较您规则中的数据,返回true或false。 我建议您使用验证器和rule.it有用且方便。
重写RegisterController
的register
方法,如下所示:
public function register(Request $request)
{
$this->validator($request->all())->validate();
//query the Masterlist table
$masterList = Masterlist::where('name', $request->input('name'))
->where('date_of_birth', $request->input('date_of_birth'))
->where('course', $request->input('course'))
->value('id');
if ($masterList) {
//masterList exist -> proceed registration process
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
else {
//masterList not exist => process the error;
}
}
注: register
最初定义的函数RegistersUsers
特点这是在使用RegisterController
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.