@hollanditkzn

Как получить данные из связанных таблиц?

У меня проблема так как я новичок я не понимаю что куда суватьт, мне нцжно получить данные из связанной таблицы не id, а name сотрудника в таблице otdel
class Zakaz extends \yii\db\ActiveRecord
{
 public function getIdSotrud($id)
    {
        return $this->hasOne(Otdel::className(), ['id_sotr' => 'id_sotrud']);
    }
}

И мне нужно его где-то вывести, но не знаю где так как новичок в yii2
$sotrud = Zakaz::findOne('id_sotr');
$fio = $sotrud->fio


Если нужны полный картина фалов
https://github.com/hollandit/crm.git
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
uDenX
@uDenX
PHP Developer
Связи в Yii
У метода getIdSotrud нужно убрать аргументы
$sotrud->IdSotrud->fio
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Есть таблица Zakaz с ней связана таблица Odtel, для этого создается связь в моделе Zakaz:
public function getOtdel()
    {
        return $this->hasOne(Otdel::className(), ['otdel_id' => 'zakaz_id']);
 //читать и понимать как: эта модель имеет связь один к одному с моделью Otdel. Где  otdel_id модели Otdel равно  zakaz_id модели Zakaz
    }

Далее, допустим в контролере, можно найти заказ и обратиться к атрибутам связанного с ним отделом:
$model = Zakaz::findOne($someid);
echo $model->otdel->fio; //понимать как: МодельZakazC ID = $someid обращаемся к связи, которая называется "otdel" и берем из нее атрибут fio
Ответ написан
Ваш ответ на вопрос

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

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