今天我来说说用户认证:
使用artisan make:auth 创建auth 验证
下一步创建数据库,laravel自带数据迁移功能,我本地使用自建的数据表(本人还是同喜欢laravel create_at update_at 字段的设计)
我先进入默认的登录页面,我们能看到基础的登录页面,我们做的网站大多使用中文,而laravel 大多都是英文反馈,所以我们首先更改一下对登录界面validate验证。
修改前端页面的中文我就不说了,对于能够学习laravel的同学来说都太简单了(laravelNews\resources\views 前端代码就在这了)
怎么才能找到后台validate验证呢?
这就要依靠laravel 路由功能了(laravelNews\vendor\laravel\framework\src\Illuminate\Routing\Router.php)
进入到 LoginController控制器后你会发现只有哟点点代码 ,这里有一个重要的设置 $redirectTo 成功后进入的页面,下面注意看我的注释!!!
(laravelNews\vendor\laravel\framework\src\Illuminate\Foundation\Auth)AuthenticatesUsers.php 文件中修改
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* Get the failed login response instance.
* 数据库判断密码错误后返回
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*/
protected function sendFailedLoginResponse(Request $request)
{
throw ValidationException::withMessages([
$this->username() => ['用户名或密码不正确'],
]);
}
/**
* Get the login username to be used by the controller.
* 修改验证字段
* @return string
*/
public function username()
{
return 'username';
}
打开app目录,下的user.php同学们都没注意过吧,注意看我下面的注释@!!!
//设置表名
protected $table = 'user';
//设置主键
protected $primarykey = 'userid';
//设置字段
protected $fillable = [
'id','username','password','answer','qid','score'
];
public $timestamps = true;
//获取当前时间
public function freshTimestamp() {
return time();
}
//select的时候避免转换时间为Carbon
// public function fromDateTime($value) {
// return $value;
// }
//
// //时间取出时默认为标准格式,改为时间戳格式
// protected function asDateTime($val){
// return $val;
// }
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
//密码认证字段
protected $hidden = [
'password', 'remember_token',
];
I'm 齐小明