Laravel: Как мне использовать другие данные, кроме электронной почты и пароля?

Вы можете использовать объект DateTime :

use DateTime;
my $dt;

while ( my ($date, $sum) = $sth->fetchrow )  {
    if (defined $dt) {
        print CSV $dt->ymd . ",0\n" while $dt->add(days => 1)->ymd lt $date;
    }
    else {
        my ($y, $m, $d) = split /-/, $date;
        $dt = DateTime->new(year => $y, month => $m, day => $d);
    }
    print CSV, "$date,$sum\n";
}

. Что делает вышеприведенный код, это сохранение последней печатной даты, сохраненной в объекте DateTime $dt, и если текущая дата больше одного дня в будущем, она увеличивает $dt на один день (и печатает ее в строке CSV) до тех пор, пока она не будет такой же, как текущая дата.

Таким образом вам не нужны дополнительные таблицы, и вам не нужно забирать все ваши строки заранее.

1
задан Marcello Patto 18 January 2019 в 17:24
поделиться

2 ответа

Вам придется переопределить эти методы в вашем LoginController, просто вставьте это и измените соответствующим образом.

Измените имя поля по умолчанию email на cpf:

public function username()
{
    return 'cpf'; // or whatever field you use to login
}

Выполните здесь проверку с учетными данными:

protected function validateLogin(Request $request)
{
    $request->validate([
        $this->username() => 'required|string|exists:users,cpf',
    ]);
}

Выполните запрос на вход. Здесь мы ищем пользователя, затем регистрируем его вручную и перенаправляем на панель управления (домой), если это не удается, вы будете перенаправлены обратно со входом, который был вставлен в форму:

public function login(Request $request)
{
    $this->validateLogin($request);

    $user = User::where('cpf', $request->cpf)->first();

    if ($user) {
        Auth::login($user);
        return redirect()->intended('home');
    }

    return redirect()->back()->withInput($request->all());
}

[1111 ] Таблица БД, с которой я тестировал:

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('cpf')->unique();
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->rememberToken();
    $table->timestamps();
});
0
ответ дан emotality 18 January 2019 в 17:24
поделиться

Шаг 1: открыть файл AuthenticatesUsers.php

Шаг 2: обновить функцию username(), по умолчанию вы увидите электронную почту. вам нужно обновить его до cpf.

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

Шаг 3: обновите функцию credentials(Request $request), по умолчанию это пароль. Вы можете изменить в соответствии с вашим подходом. если вы не хотите этого, вы также можете удалить поле для пароля!

    protected function credentials(Request $request)
    {
        //return $request->only($this->username(), 'password');
        return $request->only($this->username());
    }
0
ответ дан Nayeem Azad 18 January 2019 в 17:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: