Моя форма входа в систему только перезагружает страницу, но не регистрирует пользователя - PullRequest
0 голосов
/ 31 января 2020

Моя форма входа не работает после того, как я вынул «email» и «имя» из формы, вынул «email» и «имя» из защищенного файла в User. php. Я также сделал избыточные поля обнуляемыми в базе данных. Пользователь должен иметь возможность войти в систему, используя свои «имя пользователя» и «пароль». Форма регистрации работает нормально, это просто форма входа, которая вызывает проблему.

login.blade. php @extends ('layouts.app')

@section('content')
<div class="container">
<div class="row justify-content-center">
    <div class="col-md-8">
        <div class="card">
            <div class="card-header">{{ __('Login') }}</div>

            <div class="card-body">
                <form method="POST" action="{{ route('login') }}">
                    @csrf

                    <div class="form-group row">
                        <label for="username" class="col-md-4 col-form-label text-md-right">{{ __('Username') }}</label>

                        <div class="col-md-6">
                            <input id="username" type="username" class="form-control @error('username') is-invalid @enderror" name="username" value="{{ old('username') }}" required autocomplete="username" autofocus>

                            @error('username')
                                <span class="invalid-feedback" role="alert">
                                    <strong>{{ $message }}</strong>
                                </span>
                            @enderror
                        </div>
                    </div>

                    <div class="form-group row">
                        <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                        <div class="col-md-6">
                            <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">

                            @error('password')
                                <span class="invalid-feedback" role="alert">
                                    <strong>{{ $message }}</strong>
                                </span>
                            @enderror
                        </div>
                    </div>

                    <div class="form-group row">
                        <div class="col-md-6 offset-md-4">
                            <div class="form-check">
                                <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                                <label class="form-check-label" for="remember">
                                    {{ __('Remember Me') }}
                                </label>
                            </div>
                        </div>
                    </div>

                    <div class="form-group row mb-0">
                        <div class="col-md-8 offset-md-4">
                            <button type="submit" class="btn btn-primary">
                                {{ __('Login') }}
                            </button>

                            @if (Route::has('password.request'))
                                <a class="btn btn-link" href="{{ route('password.request') }}">
                                    {{ __('Forgot Your Password?') }}
                                </a>
                            @endif
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
</div>
@endsection

Модель Пользователь . php

namespace App;



use App\Mail\NewUserWelcomeMail;

use Illuminate\Notifications\Notifiable;

use Illuminate\Contracts\Auth\MustVerifyEmail;

use Illuminate\Foundation\Auth\User as Authenticatable;

use Illuminate\Support\Facades\Mail;



class User extends Authenticatable

{

use Notifiable;


protected $fillable = [

    'username', 'password',

];





protected $hidden = [

    'password', 'remember_token',

];

protected $casts = [

    'email_verified_at' => 'datetime',

];



protected static function boot()

{

    parent::boot();



    static::created(function ($user) {

        $user->profile()->create([

            'title' => $user->username,

        ]);




    });

}



public function posts()

{

    return $this->hasMany(Post::class)->orderBy('created_at', 'DESC');

}



public function following()

{

    return $this->belongsToMany(Profile::class);

}



public function profile()

{

    return $this->hasOne(Profile::class);

}





public function tasks()
{
    return $this->hasMany(Task::class);
}

}

Таблица базы данных

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name')->nullable();
        $table->string('email')->nullable();
        $table->string('username')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
    }


public function down()
{
    Schema::dropIfExists('users');
}
}

LoginController. php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{


use AuthenticatesUsers;


protected $redirectTo = RouteServiceProvider::HOME;


public function __construct()
{
    $this->middleware('guest')->except('logout');
}
}

1 Ответ

0 голосов
/ 31 января 2020

Добавьте эту функцию к App\Http\Controller\Auth\LoginController.php.

Она изменит ваше поле входа email на username. которая решит вашу проблему сейчас.

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

Одно предложение для вас. посмотрите, как использовать аутентификацию фреймворка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...