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