Доброе утро. Что то не могу никак понять, как работать со связанными таблицами, есть 3 таблицы:
Как вы поняли,
social и
user я объединил в одну таблицу
social_users, чтобы потом было удобнее динамически обновлять данные. Но вот проблема, я никак не могу понять, как выводить данные во вью из этой таблицы, чтобы автоматом все данные брались из связанных таблиц по их id..... Уверен что ответ на поверхности как обычно, но найти никак не могу, помогите пожалуйста.
И вот связи в моделях:
Social.phppublic function getSocialUsers()
{
return $this->hasMany(SocialUsers::className(), ['social_id' => 'id_social']);
}
user.phppublic function getSocialUsers()
{
return $this->hasMany(SocialUsers::className(), ['user_id' => 'id_user']);
}
SocialUsers.phppublic function getUser()
{
return $this->hasMany(User::className(), ['id_user' => 'user_id']);
}
public function getSocial()
{
return $this->hasMany(Social::className(), ['id_social' => 'social_id']);
}
Во views:
ProfileController.phppublic function actionIndex()
{
$id = Yii::$app->user->identity['id_user'];
$profile = Profile::find()->where(['user_id' => $id])->asArray()->one();
$socials = SocialUsers::find()->asArray()->all();
return $this->render('index', [
'profile' => $profile,
'socials' => $socials,
]);
}
index.php<?php if(isset($socials)):?>
<div class="list-group">
<?php foreach ($socials as $social):?>
<a href="#" class="list-group-item"><i class="fa fa-facebook"></i> </a>
<?php endforeach;?>
</div>
<?php endif;?>
Получаю:
Я понимаю, что я получаю вообще все данные из таблицы, и они никак не привязаны ни к пользователю, ни к таблице с соц сетями. Как работают вообще эти связи, и зачем они?