如何在 Laravel 5.2 中使用不同的数据库表列名登录?

How to get login with different database table column name in Laravel 5.2?(如何在 Laravel 5.2 中使用不同的数据库表列名登录?)
本文介绍了如何在 Laravel 5.2 中使用不同的数据库表列名登录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我必须在 Laravel 5.2 中实现登录功能.我已经使用官方 Laravel 文档成功地做到了这一点,只是我不知道如何使用不同的数据库表列名称来验证用户,即 st_usernamest_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

  1. config/auth.php

    //改变这个'司机' =>'雄辩',//到这个'司机' =>'风俗',

  2. 在 config/app.php 中将您的自定义提供程序添加到列表中...

    'providers' =>[...//将此添加到其他提供者的底部AppProvidersCustomAuthProvider::class,...],

  3. 在文件夹 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(){/
                    
    本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)