美文网首页laravel-nova
3.Laravel-Nova修改登录login不是使用email

3.Laravel-Nova修改登录login不是使用email

作者: Moquyun | 来源:发表于2019-01-18 17:28 被阅读0次

    默认是email登录,不符合用户习惯,修改登录账号字段,需要修改nova登录模板和控制器

    1.模板在resources/views/vendor/nova/新建auth目录,
    vendor/laravel/nova/resources/views/auth/login.blade.php复制到resources/views/vendor/nova/auth/
    修改模板resources/views/vendor/nova/auth/login.blade.php
    修改email输入表单和错误信息字段,如下

        @if ($errors->any())
            <p class="text-center font-semibold text-danger my-3">
              @if ($errors->has('name'))
                {{ $errors->first('name') }}
              @else
                {{ $errors->first('password') }}
              @endif
            </p>
        @endif
    
        <div class="mb-6 {{ $errors->has('name') ? ' has-error' : '' }}">
            <label class="block font-bold mb-2" for="name">账号</label>
            <input class="form-control form-input form-input-bordered w-full" id="name" type="text" name="name" value="{{ old('name') }}" required autofocus>
        </div>
    
        <div class="mb-6 {{ $errors->has('password') ? ' has-error' : '' }}">
            <label class="block font-bold mb-2" for="password">{{ __('Password') }}</label>
            <input class="form-control form-input form-input-bordered w-full" id="password" type="password" name="password" required>
        </div>
    

    名称可以用{{ __('UserName') }}需要在resources/lang/vendor/novajson添加对应

    "UserName": "账号",
    

    2.修改vendor/laravel/nova/src/Http/Controllers文件夹下LoginController.php

    修改app\Provider\NovaServiceProvider.php
    添加use Illuminate\Support\Facades\Route;
    修改routes()方法,添加withAuthenticationRoutes覆盖原方法

    
      use Illuminate\Support\Facades\Route;
    
    
        protected function routes()
        {
            $this->withAuthenticationRoutes();
            Nova::routes()
                // ->withAuthenticationRoutes()
                ->withPasswordResetRoutes()
                ->register();
        }
    
        /** 覆盖withAuthenticationRoutes() */
        public function withAuthenticationRoutes($middleware = ['web'])
        {
    
            Route::namespace('App\Nova\Http\Controllers\Auth')
                ->domain(config('nova.domain', null))
                ->middleware($middleware)
                ->as('nova.')
                ->prefix(Nova::path())
                ->group(function () {
                    Route::get('/login', 'LoginController@showLoginForm');
                    Route::post('/login', 'LoginController@login')->name('login');
                });
            return $this;
        }
    

    复制nova\src\Http\Controllers\LoginController.phpapp\Nova\Http\Controllers\Auth\LoginController.php

    app\Nova\Http\Controllers\Auth\LoginController.php
    添加username()重构

    public function username()
    {
        return 'name';
    }
    

    相关文章

      网友评论

        本文标题:3.Laravel-Nova修改登录login不是使用email

        本文链接:https://www.haomeiwen.com/subject/wkwndqtx.html