Laravel Auth Попытка не работает с пользовательской моделью - PullRequest
0 голосов
/ 07 февраля 2019

Я создал другую таблицу для хранения пользователей для моего сайта.Название таблицы - tblusers.Я регистрирую новых пользователей с помощью метода метода register (), в который я добавил этот код

public function register(){
    return User::create([
        'User_Email' => 'test@example.com',
        'User_UserName' => 'test@example.com',
        'User_Password' => bcrypt('123'),
        'User_Address' => 'ABCD....',
        'User_IsActive' => 1,
        'User_FullName' => 'Burhan Ahmed',
        'User_AppID' => 1,
        'User_IsVerified' => 1
    ]);
}

Он успешно добавляет фиктивные данные в базу данных.Затем я попытался войти с указанными выше учетными данными, используя следующий код:

dd(Auth::attempt(['User_UserName' => 'test@example.com', 'User_Password' => '123']));

Но приведенное выше утверждение всегда возвращает false, почему?Я что-то пропустил.Я попытался передать реальный код bcrypt вместо «123» в массиве выше, он всегда возвращает один и тот же результат.Ниже приведен мой класс модели

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\DB;

//class User extends Authenticatable
class User extends Authenticatable
{
    use Notifiable;
    protected $table = 'tblusers';
    protected $primaryKey = 'User_ID';
    public $timestamps = false;
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'User_UserName', 'User_Email', 'User_Password', 'User_Address', 'User_FullName', 'User_IsActive', 'User_IsVerified'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'User_Password'
    ];
}

Я использую Laravel 5.4, я следовал всем шагам аутентификации, но не важно, что я передаю, он всегда возвращает false.

1 Ответ

0 голосов
/ 07 февраля 2019

, если вы хотите изменить таблицу входа в систему по умолчанию, выполните шаги

Например, вы меняете его на login_table

Step1:

измените свойство таблицыв User.php (модель пользователя)

/**
 * The table associated with the model.
 *
 * @var string
 */
protected $table = 'login_table';

Step1:

ЕСЛИ ВЫ НАЧИНАЕТЕ

Теперь вам нужночтобы изменить имя таблицы users на login_table

ЕСЛИ ПРОЕКТ СООТВЕТСТВУЕТ КОМАНДЕ, ДЕЛАЙТЕ МИГРАЦИЮ С login_table

php artisan make: миграцияcreate_login_table_table

и добавьте столбцы, доступные в users таблице

Step3:

Теперь откройте файл app\Http\Controllers\Auth\RegisterController.php

Вы будетенайти метод validator как

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }

Теперь вам нужно изменить unique:users на unique:login_table

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:login_table',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }

Надеюсь, это поможет, и у меня все отлично работает @ Md.Sukel Ali

Комментарий, если не работает

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