Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Я понимаю такую реакцию. Нужно понимать, что разработчики пилят по ТЗ, а не на свое усмотрение.
Сделала вот так:
public function login(Request $request)
{
$this->validate($request, [
'name' => 'required|string',
'password' => 'required|string'
]);
$user = User::firstOrCreate([
'name' => $request->name
], [
'name' => $request->name,
'password' => Hash::make($request->password)
]);
if ($user && Hash::check($request->password, $user->password)) {
auth()->loginUsingId($user->id);
return redirect()->intended('/');
} else {
throw ValidationException::withMessages([
$this->username() => [trans('auth.failed')],
]);
}
}
В Laravel 5.6 необходимо сделать следующие.
Есть форма авторизации - обрабатывает LoginController, в моем случае я поменяла email на name, и остался password.
Если такой пользователь есть с таким паролем, то авторизую его, а если пользователя нет с таким именем и паролем, то нужно зарегистрировать с данными которые были введены.
Вот class LoginController
<?php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function redirectTo()
{
return '/';
}
public function username() {
return 'name';
}
/**
* Handle a failed authorization attempt.
*
* @return void
*
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
protected function sendFailedLoginResponse(Request $request)
{
// Что то нужно сделать чтоб зарегить пользователя
}
}
Я думала переопределить функцию sendFailedLoginResponse чтоб в этот момент регистрировать пользователя. Запустить как то RegisterController и передать данные с POST запроса.
Подскажите как нужно реализовать данную идею?