FuelPHP:扩展OrmAuth用户模型(需要自定义配置文件字段)

时间:2015-01-26 11:07:56

标签: php fuelphp

我正在学习FuelPHP并尝试使用OrmAuth来处理身份验证和授权过程。我能够生成所有"标准" OrmAuth表(user,users_permissions,users_metadata等)。但是,我不明白将自定义字段添加到用户对象的正确方法是什么(例如,telefon_number)。有人可以帮助我并举一些例子吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

首先,您可以通过已在用户模型中配置的EAV容器(来自OrmAuth包)轻松实现您想要的功能。您只需在模型上设置任何元数据,并将其保存,如:

$user = Auth_User::find(1);
$user->telefon_number = '+36 30 taratatta-taratatta';
$user->save();

telefon_number放在users_metadata表中,但当您查询用户时,它会在该模型实例上自动提供。

但是,有时候这还不够,例如当您想使用这些属性构建高级查询时。您可能希望该字段出现在users表中。

我为实现这一目标所做的是documented under the extending the core part of the documentation。基本上我从OrmAuth包中扩展了\Auth\Model\Auth_User类,如下所示:

namespace Model;

class Auth_User extends \Auth\Model\Auth_User
{
    /**
     * @var array   model properties
     */
    protected static $_properties = [
        // your properties go here
    ];
}

现在,在您应用的bootstrap.php中,您必须告诉自动加载器使用此类而不是OrmAuth包中的类:

\Autoloader::add_classes(array(
    // Add classes you want to override here
    // Example: 'View' => APPPATH.'classes/view.php',
    'Auth_User' => APPPATH.'classes/model/auth/user.php',
    'Model\\Auth_User' => APPPATH.'classes/model/auth/user.php',
));

注意:此示例同时设置Auth_UserModel\Auth_User,但根据您的需要,可能只有一个。

答案 1 :(得分:0)

要扩展fuelphp中的用户配置文件字段,请访问。

PKGPATH // auth / classes / auth / login / ormauth.php @第225行 换行

public function create_user($username, $password, $email, $group = 1, Array $profile_fields = array())

类似

public function create_user($firstname, lastname, $username, $password, $email, $group = 1, Array $profile_fields = array())

继续执行代码并添加

$user = Auth::create_user(
    $firstname,
    $lastname,
    Input::post('username'),
    Input::post('password'),
    Input::post('email'),
    1,//group id
);