我会尽量把这件事说清楚的。
我推出了一个make调用,以便使用laravel的登录和注册功能,后来只使用模板来提供我想要的需求。
1. Problem 1 - I also want to update user , which is giving problems. The password inputs return empty fields , which i understand. When I try to change it doenst work the confirm password always give a mismatch even though they are the same. When I leave it blank too it doesnt work because the field is required to be filled. I took them off the form and tried if i could edit the email only but only didnt work.
公共函数userUpdate (Request $request,$user_id) {
$this->validate($request,[
'email' => 'required|email',
'name' => 'required|max:120',
'password' => 'required|min:4|confirmed']);
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = encrypt($request->password);
if (Gate::allows('register-user')) {
$user->save();
$user->roles()->attach($request->roles);
return redirect()->route('view_users');
}elseif (Gate::denies('register-user')) {
if (Auth::id() == $user_id) {
$user->save();
$user->roles()->attach($request->roles);
return redirect()->route('view_users');
}else{
return redirect()->back();
}
}
}问题2.我刚刚意识到我用我的新注册所做的所有登录都给出了这些凭证不匹配我们的records.Even,尽管凭证在那里并且注册正确。我正在使用laravel提供的登录,但我创建了自己的注册。
请让我如何编辑和更新我的用户,也能够在注册后登录。
发布于 2016-11-19 20:58:32
我发现出了什么问题,因为我使用的是Laravel的登录,我的注册必须使用bycrypt进行加密,这就是Laravel注册所使用的,但我在创建自己的注册时使用的是加密,所以在登录时出现了冲突。(Remembere我使用的是Laravel登录,而不是我自己写的登录)。我希望这能帮到别人
发布于 2016-11-16 15:28:42
你用的是什么版本的Laravel?
下面是我在RegisterController.php中的(v5.3) RegisterController.php方法,至少部分用于注册:
public function register(Request $request)
{
...
// save and login user
$user = $this->create($request->all());
$this->guard()->login($user);
...
}
...
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'lastname' => $data['lastname'],
'phone' => $data['phone'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}和来自LoginController.php的LoginController.php方法
public function login(Request $request)
{
$credentials = $this->credentials($request);
...
if ($this->guard()->attempt($credentials, $request->has('remember'))) {
return $this->sendLoginResponse($request);
}
}希望我没有错过任何事。请记住,这里的情况已经从5.2版改变了。
https://stackoverflow.com/questions/40620994
复制相似问题