我正在尝试使用Laravel Multiauth Package,但文档没有教程或指南来演示我想要使用它的设置。
我有一个多站点(现在有两个站点)项目,我希望每个站点都有单独的登录表单,两个站点都使用相同的数据库,相同的模型,但不同的控制器,所有操作由路由组分隔,每个路由组解析到一个特定的域,说,我的问题是:
我是否需要创建AuthController
,PasswordController
和Authenticate
&每个网站的RedirectIfAuthenticated
个中间件?
我是否必须为每个路由组制作单独的路由进行身份验证?
以下是我的路线组:
Route::group(array( 'domain' => 'restaurant.com', 'namespace' => 'Public' ), function () {
//some routes
});
Route::group(array( 'domain' => 'restaurant.net', 'namespace' => 'Admin' ), function () {
//some routes
});
当我按照软件包文档中的步骤操作时,它可以正常工作,但仅适用于管理员用户,而不适用于公共用户,因为在文档中仅为此配置,当它应该演示如何使用多用途时
如果可能的话,有人可以一步一步地在 Laravel 5 (不是5.1或5.2)下进行设置。
到目前为止,我所做的是创建单独的AuthController
和PasswordController
,然后我覆盖了getLogin()
和getRegister
函数以及$redirectTo
变量,但在尝试注册用户时,我收到一条错误消息告诉我:
SQLSTATE [42S02]:未找到基表或视图:1146表'multisite.users'不存在
这是有意义的,没有users
表,但 multiauth 包文档说明我们必须更改默认的 app / auth.php 这样:
return [
'multi' => [
'employee' => [
'driver' => 'database',
'table' => 'Employees'
],
'client' => [
'driver' => 'database',
'table' => 'Clients'
]
],
'password' => [
'email' => 'emails.password',
'table' => 'password_resets',
'expire' => 60,
],
];
所以我不会使用用户表...我的应用程序命名空间是Multisite
,现在我的问题是:为什么它会查找用户表?
我找到了为什么它查找用户表,文件 app / Services / Registrar.php 是为Users
配置的,如果我将模型切换到员工或客户端,它可以工作,但一次只适用于一种型号。
现在又出现了另一个问题:我在 config / auth.php 告诉我要使用数据库驱动程序,这意味着我不应该收到此错误,我是否必须创建自己的错误为每个auth控制器发布功能?