Класс App \ Listeners \ Request не существует - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь создать Ip logger для всех успешных входов в laravel с использованием прослушивателей событий. Это мой прослушиватель для входа в систему.

    <?php

namespace App\Listeners;

use Illuminate\Auth\Events\Login;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class LogSuccessfulLogin
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct(Request $request)
    {
       $this->request = $request;
    }

    /**
     * Handle the event.
     *@author Rahul R
     * @param  Login  $event
     * @return void
     */
    public function handle(Login $event)
    {
      $user = $event->user;
      $user->last_login_at = date('Y-m-d H:i:s');
      $user->last_login_ip=$this->request->ip();
      $user-save();
    }
}

А это мой loginController

namespace App\Http\Controllers\pages;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Models\UserLoginModel;
use App\User;
use Illuminate\Support\Facades\Auth;
use Zizaco\Entrust\EntrustFacade as Entrust;

class LoginController extends Controller
{
    /**
  * User Authentication Table - `users`
  * @author Rahul
  *
  * @method POST
  * @param  Request | $request
  * @return array | $error_message
  * @return redirect | login | dashboard
  */

  protected function auth(Request $request) {
    $user = new User;
    $user->email_address = $request->get('email_address');
    $user->password = $request->get('password');

    $userCredentials['email_address'] = $user->email_address;
    $userCredentials['password'] = $user->password;

    /* Making Authentication Request */
    if(Auth::attempt($userCredentials))
    {
      /* If Auth true */
    if (Entrust::hasRole('admin')) {
      return redirect('admin/dashboard');
    } else {
      return redirect('dashboard');
    }

} else {

  /* If Auth false */
  return redirect("login")->with('failed_login', 'Invalid email address or password.');

  }
  return redirect('login');
  }
}

Где я делаю не так, я пытался добавить App \ Listeners \ Request в logincontroller, но это вызывает конфликт

Так, каков конечный результат, мне нужно получить IP-адрес успешных входов в систему и записать его в базу данных.

1 Ответ

0 голосов
/ 29 мая 2018

В вашем файле класса LogSuccessfulLogin добавьте следующее утверждение: use \Illuminate\Http\Request;, поскольку вы используете класс Request в своем конструкторе, php считает, что он находится в App \ Listeners.

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