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

FuelPHP:扩展Orauth用户模型(需要自定义配置文件字段),php,fuelphp,Php,Fuelphp,我正在学习FuelPHP,并尝试使用Orauth来处理身份验证和授权过程。我能够生成所有“标准”ORAUTH表(用户、用户权限、用户元数据等等)。但是,我不明白向用户对象(例如telefon_number)添加自定义字段的正确方法是什么。有人能帮我举几个例子吗 谢谢。首先,通过用户模型中已配置的EAV容器(来自Orauth软件包),您可以轻松实现所需的功能。您只需在模型上设置任何元数据并保存它,如下所示: $user = Auth_User::find(1); $user->telefon

我正在学习FuelPHP,并尝试使用Orauth来处理身份验证和授权过程。我能够生成所有“标准”ORAUTH表(用户、用户权限、用户元数据等等)。但是,我不明白向用户对象(例如telefon_number)添加自定义字段的正确方法是什么。有人能帮我举几个例子吗


谢谢。

首先,通过用户模型中已配置的EAV容器(来自Orauth软件包),您可以轻松实现所需的功能。您只需在模型上设置任何元数据并保存它,如下所示:

$user = Auth_User::find(1);
$user->telefon_number = '+36 30 taratatta-taratatta';
$user->save();
这将把
telefon\u编号
放在
users\u元数据
表中,但当您查询用户时,它将自动在该模型实例上可用

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

我为实现这一目标所做的是。基本上,我从Orauth包中扩展了
\Auth\Model\Auth\u User
类,如下所示:

namespace Model;

class Auth_User extends \Auth\Model\Auth_User
{
    /**
     * @var array   model properties
     */
    protected static $_properties = [
        // your properties go here
    ];
}
现在,在应用程序的
bootstrap.php
中,您必须告诉自动加载程序使用该类,而不是Orauth包中的类:

\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_User
Model\Auth_User
,但根据您的需要,一个可能就足够了。

要扩展fuelphp中的用户配置文件字段,请转到

PKGPATH//auth/classes/auth/login/orauth.php@line 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
);