ilyaplot
@ilyaplot
PHP программист

Как упростить работу с relations в Yii?

Есть две таблицы, связанные по pk. Выбираю данные из одной таблицы вместе с данными из второй по BELONGS_TO. Во второй таблице мне нужно только одно поле, но приходится отображать информацию так: $model->%relationName%->%attributeName%
Как построить relation что бы вместо %relationName%->%attributeName% указывать %relationName% и получать значение %attributeName%?
  • Вопрос задан
  • 2841 просмотр
Решения вопроса 1
EnChikiben
@EnChikiben
В главной модели написать метод:
public function get%attributeName%(){
   return $this->%relationName%->%attributeName%;
}

вызывать:
$model->get%attributeName%(); // вариант 1
$model->%attributeName%; // вариант 2

можно еще перекрыть yii магический метод __get
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Может имеет смысл денормализировать таблицу то? А так это вполне себе нормально. Либо пишите геттер. А вот перекрывать магические методы не стоит - мало того что для этого лучше геттеры подходят, так еще и люди после вас на проекте видят такого рода говнокод и расстраиваются.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы