关于laravel身份验证的所有内容都基于用户,但我删除了用户模型并将其替换为公司模型,因此,基本上,我希望我的用户(laravel身份验证用户)成为公司。
Laravel不喜欢这个,它给了我
Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\company given, called in /home/dhiraj1site/Desktop/Documents/blog/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.p
此错误,如果我导入类似问题中建议的可验证类。 Laravel讨厌这个并给我一个空白页面。
我有公司模型和公司表,我希望用户注册为公司,并以公司身份登录。我应该怎么做,我真的很困惑并坚持这个阶段,请帮助我理解身份验证的工作原理(我已经多次阅读身份验证文档)以及如何将'用户'更改为'公司'。
答案 0 :(得分:2)
有两种方法可以为这只猫提供皮肤。 “Laravel”方式是编辑app/config/auth.php
在该文件中,您需要将该行改为'model' => 'App\User'
至'model' => 'App\Company'
。
Laravel的“陷阱”是你必须记住在新的“用户”类中实现正确的接口,公司:
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class Company extends \Eloquent implements UserInterface, RemindableInterface
{
...
}
或者对于较新版本的Laravel,它只是一个界面:
use Illuminate\Foundation\Auth\User as Authenticatable;
class Company extends Authenticatable
我以前做过这件事,对我来说效果很好。您也可以通过扩展User类来获得创意,但我认为上面是您正在寻找的内容。 HTH