PHP Kohana3.Могу ли я переименовать свойства объекта ORM? - PullRequest
1 голос
/ 24 ноября 2011

Я использую Kohana3. Например я создаю экземпляр:
$user = ORM::factory('orm_user', $user_id)
После этого я могу получить значение каждого столбца, используя этот синтаксис: $user->user_login или $user->user_password.
Могу ли я переименовать эти свойства, чтобы получить их как: $user->login или $user->pass?

1 Ответ

1 голос
/ 24 ноября 2011

Да, вы можете перегрузить магические методы __set и __get в вашей модели:

public function __get($field)
{
    switch ($field) {
        case 'login':
            return $this->user_login;
        case 'pass':
            return $this->user_password;
    }

    return parent::__get($field);
}

public function __set($field, $value)
{
    switch ($field) {
        case 'login':
            $this->user_login = $value;
            return;
        case 'pass':
            $this->user_password = $value;
            return;
    }

    parent::__set($field, $value);
}

При написании любых правил или фильтров вам все равно придется использовать исходные имена столбцов.

...