最近在学习laravel框架,作为一个极客当然要学习最新版本,对于laravel框架,自带了很多服务,对于初学者来说,框架的目录结构都不是很了解,所以我来帮大家找找,基础设置的文件,和代码设置。
今天我来说说用户认证:
使用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'; }
/** * Validate the user login request. * 登录验证规则定义 * @param \Illuminate\Http\Request $request * @return void */ protected function validateLogin(Request $request) { $this->validate($request, [ $this->username() => 'required|string', 'password' => 'required|string', ],[ 'required' => ':attribute为必填项', ]); } 下面最后一步,怎么才能使用自己的数据表呢?打开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', ];
以上是我对于简单自定义auth的设置过程,希望对有需要的小伙伴有所帮助。
I'm 齐小明