如何在Laravel中使用多个数据库表进行身份验证?
例如,我有3个表: 1.一般用户登录表 2.会员资格表 3. CMS用户详细信息表
当用户从CMS或会员登录时,Auth将从“一般用户登录”表中进行验证。但是如何让Auth功能从第二个或第三个表获取信息取决于用户类型?然后,我可以通过类似Auth::user()->address
的内容访问这些信息,地址存储在会员详细信息表中。
谢谢。
答案 0 :(得分:3)
创建关系列,将您的用户与其他表中的数据相关联:
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
public function membership()
{
return $this->belongsTo('Membership');
}
public function userDetails()
{
return $this->belongsTo('CmsDetail');
}
}
class Membership extends Eloquent {
protected $table = 'membership';
}
class CmsDetail extends Eloquent {
protected $table = 'cms_details';
}
然后你可以
echo Auth::user()->membership->member_since;
echo Auth::user()->userDetails->address;