Laravel 4使用多数据库表进行身份验证

时间:2014-01-08 00:54:24

标签: php mysql authentication laravel laravel-4

如何在Laravel中使用多个数据库表进行身份验证?

例如,我有3个表: 1.一般用户登录表 2.会员资格表 3. CMS用户详细信息表

当用户从CMS或会员登录时,Auth将从“一般用户登录”表中进行验证。但是如何让Auth功能从第二个或第三个表获取信息取决于用户类型?然后,我可以通过类似Auth::user()->address的内容访问这些信息,地址存储在会员详细信息表中。

谢谢。

1 个答案:

答案 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;