Как переименовать столбец?
Как переименовать столбец?
Допустим в базе хранится столбец как article_id, а я хочу его из кода использовать как articleId (без подчеркивания). Но переименовывать столбец в базе я не могу и не хочу. Есть какой-то способ это сделать через ORM? Я просто возлагал надежды на метод fields, но оказывается он работает только с toArray. Нужно что-то аналогичное. Если есть конечно...
Re: Как переименовать столбец?
set / get самый простой способ.
Re: Как переименовать столбец?
а иначе контролировать каждый запрос. в любом случае потратите много времени на хотелки свои.
Re: Как переименовать столбец?
Перекройте магические __set и __get. Преобразуете articleId в article_id и вызываете parent.
Последний раз редактировалось someweb 2019.03.07, 09:35, всего редактировалось 1 раз.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Re: Как переименовать столбец?
Примерно так, только в базе не должно быть имен столбцов, содержащих заглавные буквы.
Код: Выделить всё
class MyActiveRecord extends ActiveRecord
{
public function __set($name, $value)
{
$name = strtolower(preg_replace('/[A-Z]/', '_$0', $name));
parent::__set($name, $value);
}
public function __get($name)
{
$name = strtolower(preg_replace('/[A-Z]/', '_$0', $name));
return parent::__get($name);
}
}
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.