【问题标题】:Laravel 4 authentication with multi database table具有多数据库表的 Laravel 4 身份验证
【发布时间】:2014-01-25 22:18:00
【问题描述】:
如何在 Laravel 中对多个数据库表进行身份验证?
例如,我有 3 个表:
1. 通用用户登录表
2. 会员明细表
3. CMS用户明细表
当用户从 CMS 登录或会员登录时,Auth 将从“一般用户登录”表中进行验证。但是如何使 Auth 函数也从第二个或第三个表中获取信息取决于用户类型?然后,我可以通过Auth::user()->address 之类的方式访问这些信息,地址存储在会员详细信息表中。
谢谢。
【问题讨论】:
标签:
php
mysql
authentication
laravel
laravel-4
【解决方案1】:
创建关系列,将您的用户与其他表中的数据相关联:
<?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;