How to get login with different database table column name in Laravel 5.2?(如何在 Laravel 5.2 中使用不同的数据库表列名登录?)
问题描述
我必须在 Laravel 5.2 中实现登录功能.我已经使用官方 Laravel 文档成功地做到了这一点,只是我不知道如何使用不同的数据库表列名称来验证用户,即 st_username
和 st_password
.
我已经在互联网上搜索了线索,但无济于事.我不知道我需要使用哪个类(例如,使用 Illuminate ......)进行身份验证.如果有人知道答案,请告诉我.
这是我的代码:
登录查看
@extends('layouts.app')@section('内容')<div class="contact-bg2"><div class="容器"><div class="booking"><h3>登录</h3><div class="col-md-4 booking-form" style="margin: 0 33%;"><form method="post" action="{{ url('/login') }}">{!!csrf_field() !!}<h5>用户名</h5><input type="text" name="username" value="abcuser"><h5>密码</h5><input type="password" name="password" value="abcpass"><input type="submit" value="登录"><输入类型=重置"值=重置"></表单>
<div></div>@endsection
授权控制器
命名空间 AppHttpControllersAuth;使用 AppUser;使用验证器;使用 AppHttpControllersController;使用 IlluminateFoundationAuthThrottlesLogins;使用 IlluminateFoundationAuthAuthenticatesAndRegistersUsers;类 AuthController 扩展控制器{使用 AuthenticatesAndRegistersUsers、ThrottlesLogins;受保护的 $redirectTo = '/home';公共函数 __construct(){$this->middleware('guest', ['except' => 'logout']);$this->username = 'st_username';$this->password = 'st_password';}受保护的函数验证器(数组 $data){返回 Validator::make($data, ['名称' =>'需要|最大:255','电子邮件' =>'required|email|max:255|unique:users','密码' =>'需要|确认|分钟:6',]);}
路由文件
Route::get('/', function () {返回视图('索引');});Route::group(['middleware' => 'web'], function () {路线::认证();Route::get('/home', 'HomeController@index');});
config/auth.php
返回 ['默认' =>['守卫' =>'网络','密码' =>'用户',],'守卫' =>['网络' =>['司机' =>'会议','提供者' =>'用户',],'api' =>['司机' =>'令牌','提供者' =>'用户',],],'提供者' =>['用户' =>['司机' =>'雄辩','模型' =>应用用户::类,],//'用户' =>[//'司机' =>'数据库',//'表' =>'用户',//],],'密码' =>['用户' =>['提供者' =>'用户','电子邮件' =>'auth.emails.password','表' =>'密码重置','过期' =>60,],],];
我搜索了很多如何自定义 Laravel 5.2 授权表单,这 100% 对我有用.这是从下到上的解决方案.
此解决方案最初来自此处:https://laracasts.com/discuss/channels/laravel/replacing-the-laravel-authentication-with-a-custom-authentication
但我必须进行一些更改才能使其正常工作.
我的网络应用程序是为 DJ 而设计的,所以我的自定义列名称带有dj_",例如名称是 dj_name
config/auth.php
//改变这个'司机' =>'雄辩',//到这个'司机' =>'风俗',
在 config/app.php 中将您的自定义提供程序添加到列表中...
'providers' =>[...//将此添加到其他提供者的底部AppProvidersCustomAuthProvider::class,...],
在文件夹 appProviders 中创建 CustomAuthProvider.php
命名空间 AppProviders;使用 IlluminateSupportFacadesAuth;使用 AppProvidersCustomUserProvider;使用 IlluminateSupportServiceProvider;类 CustomAuthProvider 扩展了 ServiceProvider {/*** 引导应用程序服务.** @return 无效*/公共函数引导(){Auth::provider('custom', function($app, array $config) {//返回 IlluminateContractsAuthUserProvider 的一个实例...return new CustomUserProvider($app['custom.connection']);});}/*** 注册应用服务.** @return 无效*/公共函数 register(){/
本文标题为:如何在 Laravel 5.2 中使用不同的数据库表列名登录
基础教程推荐
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 使用 PDO 转义列名 2021-01-01