В моем проекте laravel я хочу реализовать функцию входа для агентов. Я пытаюсь заставить агентов войти в систему из таблицы 'agents'
. Я создал контроллер и также добавил в config/auth.php
, но он не работает.
Ниже приведен мой код в модели
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Kyslik\ColumnSortable\Sortable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Agencie extends Authenticatable
{
use Notifiable;
use Sortable;
protected $table = 'agencies';
protected $primaryKey = 'agency_id';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'agency_id', 'agency_name','agency_user_name' ,'agency_password', 'agency_city', 'agency_state', 'agency_zip', 'agency_email','status','created_at','updated_at'
];
}
Следующие строки я добавил в config / auth. php под providers & guards
'guards' => [
'agency' => [
'driver' => 'session',
'provider' => 'agency',
],
],
'providers' => [
'agency' => [
'driver' => 'eloquent',
'model' => App\Agencie::class,
],
],
Ниже приведены коды в маршрутах. php
Route::group(['prefix' => 'agency'], function () {
Route::get('/', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('agency_login');
Route::get('/login', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Agency\AgencyAuth\LoginController@login');
});
Ниже приведен код в контроллере
<?php
namespace App\Http\Controllers\Agency\AgencyAuth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Hesto\MultiAuth\Traits\LogsoutGuard;
use JsValidator;
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, LogsoutGuard {
LogsoutGuard::logout insteadof AuthenticatesUsers;
}
protected $validationRules = [
'email' => 'required|email',
'password' => 'required'
];
/**
* Where to redirect users after login / registration.
*
* @var string
*/
// public $redirectTo = '/user/home';
public $redirectTo = '/user/dashboard-graph';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('admin.guest', ['except' => 'logout']);
}
/**
* Show the application's login form.
*
* @return \Illuminate\Http\Response
*/
public function showLoginForm()
{
$validator = JsValidator::make($this->validationRules,[],[],'#loginform');
return view('agency.auth.login')->with('validator', $validator);
}
/**
* Get the guard to be used during authentication.
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard()
{
return Auth::guard('agency');
}
/**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function credentials(\Illuminate\Http\Request $request)
{
//return $request->only($this->username(), 'password');
return ['email' => $request->{$this->username()}, 'password' => $request->password, 'status' => 'Active'];
}
}
У меня есть Не добавлены коды страницы просмотра, форма входа успешно загружается, но если я предоставляю "идентификатор электронной почты" и "пароль" из agency_table, он не регистрируется.
Отображается следующая ошибка
Column not found: 1054 Unknown column 'email' in 'where clause
Моя таблица называется admin_email
Пожалуйста, помогите, в чем здесь проблема