我在页面中创建了一个简单的登录和注册,并在默认的users
表中添加了一些新列。现在我的问题是我有另一个名为admin
的表,默认的Laravel的Auth表是users
。如何在表格中实现相同的功能?
在Users模型中,它具有表名
的声明 protected $table = 'users';
您能举例说明如何使用默认的laravel' auth类吗?
谢谢,谢谢。 : - )答案 0 :(得分:3)
您是否听说过Multiauth in laravel。在这个库中有两个或更多类型的用户可以在一个laravel应用程序中登录。在我们的例子中,有两种类型的用户Admin和Public表示用户权限。
忘记密码和重置密码功能都可以在一个应用程序中单独使用。
安装完成后,这个库有如下步骤。
'multi' => [ 'admin' => [ 'driver' => 'database', 'table' => 'admin', 'email' => 'client.emails.password' ], 'users' => [ 'driver' => 'database', 'table' => 'users', 'email' => 'client.emails.password', ] ],
使用此文件更改您的Auth.php文件代码。
<强>安装强>
首先,您希望将此包包含在composer.json文件中。
"require": {
"sboo/multiauth" : "4.0.*"
}
现在您需要通过composer更新或安装。
composer update
<强>用法强>
所有操作都与原始库完全相同,唯一的例外是所有方法调用都以键(上述示例中的帐户或用户)为前缀作为方法本身。
Auth::admin()->attempt(array(
'email' => $attributes['email'],
'password' => $attributes['password'],
));
Auth::client()->attempt(array(
'email' => $attributes['email'],
'password' => $attributes['password'],
));
Auth::admin()->check();
Auth::client()->check();
答案 1 :(得分:2)
Laravel为应用程序提供默认用户表。要更改laravel authentication different table相关表名,我们需要对config的身份验证文件进行一些小改动。
转到
配置/ auth.php
'providers' => [
// 'users' => [
// 'driver' => 'eloquent',
// 'model' => App\User::class,
// ],
'users' => [
'driver' => 'database',
'table' => 'user',
],
],
答案 2 :(得分:0)
我认为最好的方法是复制你的桌子。我将使用角色字段扩展users表,该字段指示用户是标准用户还是管理员。这样,您可以保留相同的代码并添加您要查找的ADMIN功能。
如果你需要这样做并且你使用的是Laravel 4,也许你可以使用这个插件:
https://github.com/ollieread/multiauth/
此线程中还有代码在不同的表中实现Auth:
https://gist.github.com/danielcoimbra/64b779b4d9e522bc3373
但我强烈建议将两个表集成在一个带有Admin标志/字段
的表中