使用我的laravel 5应用程序,我想拥有管理员用户和客户端。在过去,我已经使用了两个用户表,并且有一个标志,它是哪种类型的用户 - 使用连接表来获取更多客户信息。
我发现这种方法非常简洁......并且认为拥有用户表和模型以及客户表和模型会更好。
这导致我遇到了我的问题,例如auth密码重置,auth尝试是针对users表的。是否有可能使这也适用于客户端表。
这甚至可能吗? (我已经标记了laravel 4,因为解决方案也可能影响到这一点)。
答案 0 :(得分: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);
第一个参数是用户类型,第二个参数是所述用户的id,第三个参数是否记住用户,默认为false,因此可以更频繁地省略。
依此类推。
希望这有帮助!