Urvin
@Urvin

Yii2 — как обрабатывать и выводить данные?

Здравствуйте! Судьба послала заниматься незнакомым мне ранее yii2, и чем дальше в лес, тем становится страшнее. Море, кмк, невероятных наследований вызывают большее отвращение, нежели желание пользоваться этим фреймворком.

Вопрос 1. У меня есть хранящиеся в БД товары, у товаров есть некоторый конечный набор свойств. Это три таблицы:
products:
-id
-name
-user /*принадлежность товара пользователю, см. ниже*/

properties
-id
-name

productproperties:
-id
-product
-property
-value


Первоначально через Gii я сгенерировал для каждой из таблиц ActiveRecord-ы, в интерфейсе админки также имею обработчики CRUD для сущностей Products. Т.е. могу менять имя =)
Что я должен предпринять, чтобы вывести на страницах создания/просмотра/редактирования набор свойств? Очевидно, что контроллер должен забирать данные не из ActiveRecord, а чего-то более мудреного. Но чего?

Вопрос 2. У каждого пользователя свои товары. Опять та же история - сгенерированная в Gii CRUD. В админке в GridView я хочу видеть только "мои" (залогиненного пользователя) товары. Это нормально воткнуть в Products::find() условие на user = \Yii::$app->user->identity->id?

Пните, пожалуйста!
  • Вопрос задан
  • 405 просмотров
Пригласить эксперта
Ответы на вопрос 1
@matios
Technical Team Lead
1. Описываете релейшены для AR моделей и выводите данные в форме. Вообще не понятно в чем проблема. Подробнее тут:
www.yiiframework.com/doc-2.0/guide-db-active-recor...

2. Да, это нормально. Но лучше создать метод, который будет искать по user_id
public function getByUserId($id) {
    $this->where('user_id = ' . (int) $id);
}


Products::find()->getByUserId(Yii::$app->user->id)->all();
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы