Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Версия Laravel последняя;
Версия PHP в формате 7.0;
Операционная система и её версия Windows 10 x64;
Вендор и версия сервера БД (QpenServer 5.2.2, MySQL_5.7_x64)
Вендор и версия Веб-сервера в формате Apache-PHP-7-Nginx_1.10
OpenServer PHP;
Задача, что должно происходить в целом, техническое задание.
Создал модель Cooperator для таблицы Сотрудники. Модель ниже. На нее подвесил регистрацию,т.е всё что пользователь вносит в представление регистрации (поля пароль,логин,должность и другие..) записываются в соответствующие поля таблицы Сотрудники.
!!!А вот теперь и загвоздка как сделать чтобы LoginController (или что-то),при входе, сравнивала поля из таблицы Сотрудники(не users) с введенными данными, и дальше срабатывала по стандартной логике этого контроллера. Как выкинуть эту навязанную таблицу users из пищевой цепочки, так сказать...
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Cooperator extends Authenticatable
{
use Notifiable;
protected $table = 'Сотрудники';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'ФИО', 'email', 'Пароль','Должность','Логин'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'Пароль', 'remember_token'
];
}
Не в сети
Я делал кое-что похожее, т.к. приходится эволюционно приспосабливать тонны легаси.
Боюсь не смогу дать детальное описание, ибо много текста будет. Общий подход такой: надо настроить свой "гард", описать для него параметры. В мидлваре указывать имя этого гарда.
https://laravel.com/docs/5.5/authentica … tom-guards
https://gistlog.co/corbosman/d0951f9c6cdba20f644e
/config/auth.php
...
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'customer' => [
'driver' => 'session',
'provider' => 'customer_users',
],
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'customer_users' => [
'driver' => 'customer_driver',
'model' => App\Models\CustomerUser::class,
],
],
...
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'customer_users' => [
'provider' => 'customer_users',
'table' => 'password_resets',
'expire' => 60,
],
],
...
/app/Providers/AuthServiceProvider.php
...
public function boot()
{
$this->registerPolicies();
Auth::provider('customer_driver', function($app, array $config) {
// Return an instance of Illuminate\Contracts\Auth\UserProvider...
return new CustomerUserProvider(new PlainHasher(), $config['model']);
});
}
...
/routes/web.php
...
Route::group(['middleware' => ['auth:customer']], function () {
Route::get('blablabla', ['uses' => 'MyController@action', 'as' => 'ololo']);
...
});
...
Изменено artoodetoo (11.12.2017 18:16:20)
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети