【发布时间】:2016-08-06 15:49:58
【问题描述】:
我正在尝试在 Laravel 5.2 中验证登录/注册系统。
我使用welcome.blade.php 作为索引页面,其中包含注册和登录两种表单
这就是我的UserController.php 的设置方式:
namespace authme\Http\Controllers;
use Illuminate\Http\Request;
use authme\User;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function getDashboard()
{
return view('dashboard');
}
public function doSignUp(Request $request)
{
$this->validate($request, [
'email' => 'required|email|unique:users',
'first_name' => 'required|max:120',
'password' => 'required|min:6'
]);
$email = $request['email'];
$password = bcrypt($request['password']);
$first_name = $request['first_name'];
$last_name = $request['last_name'];
$location = $request['location'];
$phone = $request['phone'];
$user = new User();
$user->email = $email;
$user->password = $password;
$user->firstname = $first_name;
$user->lastname = $last_name;
$user->location = $location;
$user->phone = $phone;
$user->save();
Auth::login($user);
return redirect()->route('dashboard');
}
public function doSignIn(Request $request)
{
$this->validate($request, [
'email' => 'required',
'password' => 'required'
]);
if(Auth::attempt(['email' => $request['email'], 'password' => $request['password']])){
return redirect()->route('dashboard');
}
return redirect()->back();
}
}
为了在注册/登录期间显示错误,在我的视图文件 (welcome.blade.php) 中,我包含了:
@if(count($errors) > 0)
<div class="row">
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
@endif
路线是这样设置的:
Route::group(['middleware' => ['web']], function() {
Route::get('/', function () {
return view('welcome');
});
Route::post('/signup', [
'uses' => 'UserController@doSignUp',
'as' => 'signup'
]);
Route::post('/signin', [
'uses' => 'UserController@doSignIn',
'as' => 'signin'
]);
Route::get('/dashboard', [
'uses' => 'UserController@getDashboard',
'as' => 'dashboard'
]);
});
输入正确的详细信息时,表单工作正常。但是当我输入不正确的数据时:
- 当我尝试提交空白表单时,它只是重定向回原始页面,但没有显示错误
- 当我尝试输入已在使用的电子邮件时,它会再次重定向回原始页面,但没有显示错误
但是,我在我的代码中找不到任何可能的语法错误。有没有逻辑错误?
PS:
【问题讨论】:
标签: php validation laravel blade