簡體   English   中英

FuelPHP:擴展 OrmAuth 用戶模型(需要自定義配置文件字段)

[英]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_UserModel\\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM