Форма регистрации и входа в Laravel не работает - PullRequest
1 голос
/ 15 февраля 2020

Я создал проект в Laravel, но я не могу войти в систему и зарегистрироваться. Когда я пытаюсь зарегистрировать его, он остается на той же странице, и все поля остаются прежними, поле пароля остается пустым. Хотя на странице входа это говорит, что «Эти учетные данные не соответствуют нашим записям.» Я пытался удалить базу данных, создать новую и запустить php artisan migrate или migrate: fre sh и refre sh, но все еще не работает. Когда я пытаюсь войти пользователь или администратор из phpmyadmin говорит, что эта ошибка ". Я не знаю, если ошибка возникает, возможно, потому, что объединены таблица отдела и таблица пользователя, внешний ключ и первичный ключ с отделом_id ...

1062 - повторяющаяся запись 'admin@ana.com' для ключа 'users_email_unique'

Отдел. php


       public function users()
        {
            return $this->hasMany(User::class);
        }

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


public function users()
{
    return $this->belongsTo(Department::class);
}



   public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');//create_users_table
            //$table->text('avatar');
            $table->string('name');
            $table->string('lastname');
            $table->string('phone');
            $table->string('jobtitle');
            $table->integer('department_id');
            $table->timestamps();
            $table->string('usertype')->nullable();
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();

        });
    }

    public function up()
        {
            Schema::create('departments', function (Blueprint $table) {
                $table->bigIncrements('id');
                $table->string('name');
                $table->timestamps();
            });
        }

RegisterController. php



    class RegisterController extends Controller
    {


        use RegistersUsers;
        protected $redirectTo = RouteServiceProvider::HOME;
        public function __construct()
        {
            $this->middleware('guest');
        }


        protected function validator(array $data)
        {
            return Validator::make($data, [
                //'avatar' => ['image', 'mimes:jpeg,bmp,png,jpg', 'max:2048'],
                'name' => ['required', 'string', 'max:255'],
                'lastname' => ['required', 'string', 'max:255'],
                'phone' => ['required', 'string', 'max:10', 'min:10'],
                'jobtitle' => ['required', 'string', 'max:255'],
                'department_id' => ['required', 'string', 'max:255'],
                'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
                'password' => ['required', 'string', 'min:8', 'confirmed'],

            ]);
        }



        protected function create(array $data)
        {

            return User::create([
                'name' => $data['name'],
                'lastname' => $data['lastname'],
                'phone' => $data['phone'],
                'jobtitle' => $data['jobtitle'],
                'department_id' => $data['department'],
                'email' => $data['email'],
                'password' => Hash::make($data['password']),
            ]);
        }
    }

1 Ответ

3 голосов
/ 15 февраля 2020

1062 - Duplicate entry 'admin@ana.com' for key 'users_email_unique' эта ошибка означает, что у вас два почтовых адреса одинаковы в вашей БД и в вашей миграции вы определили поле электронной почты как уникальное. Таким образом, вы получаете эту ошибку.

, если форма не работает и вы не видите никаких ошибок, возможно, есть ошибки проверки. Вот как их показать.

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...