[英]FuelPHP: Extending OrmAuth user model (need custom profile fields)
我正在學習 FuelPHP 並嘗試使用 OrmAuth 來處理身份驗證和授權過程。 我能夠生成所有“標准”OrmAuth 表(用戶、users_permissions、users_metadata 等)。 但是,我不明白將自定義字段添加到用戶對象(例如,telefon_number)的正確方法是什么。 有人可以在這里幫助我並舉一些例子嗎?
謝謝你。
首先,使用已經在您的用戶模型中配置的 EAV 容器(來自 OrmAuth 包)可以輕松實現您想要的。 你只需要在模型上設置任何元數據,然后保存它,就像這樣:
$user = Auth_User::find(1);
$user->telefon_number = '+36 30 taratatta-taratatta';
$user->save();
這會將telefon_number
放在您的users_metadata
表中,但是當您查詢用戶時,它將自動在該模型實例上可用。
但是,有時這還不夠,例如當您想使用這些屬性構建高級查詢時。 您可能希望該字段出現在users
表中。
我為實現這一目標所做的工作記錄在文檔的擴展核心部分下。 基本上我從 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
,但根據您的需要,一個可能就足夠了。
要在fuelphp 中擴展用戶配置文件字段,請轉到。
PKGPATH//auth/classes/auth/login/ormauth.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
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.