Я только начал изучать Laravel, и я пытался настроить систему аутентификации. Я мог бы использовать laravel, построенный в auth, но я следовал учебнику, чтобы понять концепцию. Моя система auth построена с использованием некоторых модалов из бутстрапа, и система работает (вроде). Регистрация работает, но как только я вхожу в логический знак, регистрация вызывается как-то (без ошибок) и не сохраняет моего пользователя в базе данных.Laravel Auth Issue
Вот что я использую:
Это модальное окно для регистрации. Вход в систему практически не изменился, я просто изменил действие, чтобы указать на метод postSignin.
<!-- Modal Register area -->
<div class="modal fade" id="registerModal" tabindex="-1" role="dialog" aria-labelledby="myRegisterLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
{!! Form::open(['method' => 'POST', 'action' => '[email protected]', 'class' => 'login-form']) !!}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myRegisterLabel">Sign Up</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label>Email:</label>
{!! Form::text('email', Request::old('email'),['placeholder' => 'Email...']) !!}
</div>
<div class="form-group">
<label>Password:</label>
{!! Form::password('password', Request::old('password'),['placeholder' => 'Password...']) !!}
</div>
<div class="row">
<div class="col-sm-12">
<input type="submit" class="btn btn-primary login-btn" value="Sign Up">
</div>
</div>
</div>
{!! Form::close() !!}
@if($errors->any())
@foreach ($errors->all() as $error)
<div class="alert alert-danger">
<p>{{ $error }}</p>
</div>
@endforeach
@endif
</div>
</div>
</div>
<!-- End Modal Register area -->
Это, как я создал мой контроллер:
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Auth;
class UserController extends Controller
{
public function postSignup(Request $request){
$this->validate($request, [
'email' => 'email|required|unique:users',
'password' => 'required|min:4'
]);
$user = new User([
'email' => $request->input('email'),
'password' => bcrypt($request->input('password'))
]);
$user->save();
return redirect('/');
}
public function postSignin(Request $request){
$this->validate($request, [
'email' => 'email|required',
'password' => 'required|min:4'
]);
if (Auth::attempt([
'email' => $request->input('email'),
'password' => $request->input('password')
])){
return redirect()->route('user.profile');
}
return redirect()->back();
}
public function getProfile(){
return view('user.profile');
}
}
Для моих маршрутов я просто:
Route::post('/','[email protected]');
Route::post('/','[email protected]');
Итак, как я уже сказал, как только я создал Вход Регистрация не регистрирует моего пользователя в БД. Если я выберу это, он будет работать. Вход в систему работает в любом случае, если у меня есть некоторые пользователи в БД. Спасибо за помощь!