Laravel с двумя разными типами пользователей

С моим приложением laravel 5 я хочу иметь как администраторов, так и клиентов. В прошлом я использовал таблицу user для обоих, и имел флаг, какой тип пользователя это был — с таблицей соединений для получения дополнительной информации о клиенте.

Я нашел этот подход довольно беспорядочным … и думаю, что было бы лучше иметь и таблицу пользователей, и модель, и таблицу клиентов и модель.

Это приводит меня к моей проблеме, хотя, такие вещи, как сброс пароля аутентификации, попытка аутентификации предназначены для таблицы пользователей. Можно ли сделать так, чтобы это работало и на клиентском столе.

Это вообще возможно?
(Я пометил laravel 4, поскольку решение также может повлиять на это).

2

Решение

У меня была похожая проблема с несколькими пользователями в Laravel.

Я нашел multiauth Пакет Laravel, чтобы быть очень полезным, проверьте это https://github.com/ollieread/multiauth

Документация довольно проста. Плагин в конечном итоге расширяет собственный Laravel Auth, чтобы позволить нескольким пользователям.

Позвольте мне вставить фрагмент с сайта:

Все выполняется точно так же, как и в исходной библиотеке, за исключением того, что все> вызовы методов имеют префикс с ключом (учетная запись или пользователь в приведенных выше примерах) как сам метод.

Auth::account()->attempt(array(
'email'     => $attributes['email'],
'password'  => $attributes['password'],
));
Auth::user()->attempt(array(
'email'     => $attributes['email'],
'password'  => $attributes['password'],
));
Auth::account()->check();
Auth::user()->check();

Я обнаружил, что вызов метода user () для пользовательского типа с именем user () выглядит беспорядочно, поэтому я добавил хороший метод get, чтобы обернуть его вокруг.

Auth::user()->get();

В случае, когда у вас есть пользовательский тип, который может выдавать себя за другой тип пользователя, например, будучи администратором, выдавая себя за пользователя, чтобы воссоздать или проверить что-то, я добавил метод impersonate (), который просто оборачивает loginUsingId () в пользовательский тип запроса.

Auth::admin()->impersonate('user', 1, true);

Первый аргумент — это тип пользователя, второй — идентификатор указанного пользователя, а третий — запоминать ли пользователя, который по умолчанию имеет значение false, поэтому его можно пропустить чаще, чем нет.

И так далее.

Надеюсь это поможет!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]