Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет,
Подскажите, в Laravel 5.4.22 хочу в конфе(.env) прописать дефолтового админа и если под ним логиниться и его нет в базе то создать его.
Для этого в app/Http/Controllers/Auth/LoginController.php вызываю событие backendFailOnLogin(2мя способами):
protected function sendFailedLoginResponse()
{
$request = request();
echo '<pre>sendFailedLoginResponse::'.print_r(1,true).'</pre>';
$loginCreditialsArray= ['email' => $request->input('email'), 'password' => $request->input('password')];
event(new backendFailOnLogin($loginCreditialsArray)); // НЕ РАБОТАЕТ
// $retArray = \Event::fire(new backendFailOnLogin($loginCreditialsArray)); ТАКЖЕ НЕ РАБОТАЕТ
И в app/Events/backendFailOnLogin.php:
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use App\User;
class backendFailOnLogin
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $loginCreditialsArray;
public function __construct(array $loginCreditialsArray)
{
// ЭТОТ КОСТРУКТОР ВЫЗЫВАЕТСЯ
echo '<pre>__construct backendFailOnLogin $loginCreditialsArray::'.print_r($loginCreditialsArray,true).'</pre>';
}
public function broadcastOn()
{
// ЭТОТ МЕТОД НЕ ВЫЗЫВАЕТСЯ
die("-1 XXZ backendFailOnLogin broadcastOn::");
}
public function handle( array $loginCreditialsArray , Closure $next)
{
// ЭТОТ МЕТОД НЕ ВЫЗЫВАЕТСЯ
echo '<pre>handle $loginCreditialsArray::'.print_r($loginCreditialsArray,true).'</pre>';
die("-1 XXZ handle");
}
Я полагаю, что создание нового юзера в конструкторе не хороший способ
а метод handle не вызывается, хотя судя по доке должен
То есть мне нужно :
1) вызвать метод handle c параметрами логина
2) Создать юзера
3) Получить код выполнения для вывода сообщение об успехе или ошибки создания юзера
Что неправильно ?
Спасибо!
Не в сети
Все неправильно
Не в сети
Вы плохо понимаете работу с событиями. Метод handle() используется у обработчика события (listener), а не у события. Класс события - это некий контейнер данных. А запускается обработчик. Для этого нужно его зарегистрировать. Так что начните с документации. Я по событиям написал пару статей, можете также глянуть.
Не в сети
Страницы 1