Задать вопрос
@axelt

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

Добрый день. Хочу разобраться, но пока не получилось.
Есть две таблицы:
Posts - id, name, content
Postsmeta - id, posts_id, mkey, mvalue

postsmeta должна хранить теги, категории, картинки, ну вообщем что угодно, например
1,1,category,Первая категория
2,1,tag, Тэг

634e8d92447c8546017176.png

Соответственно в модели posts я пишу связь
public function getMeta()	{
		return $this->hasMany(Postsmeta::className(), ['posts_id' => 'id']);
	}


В модели Postsmeta связь пока не добавляю.

Получилось сделать вот таким способом:
$model = \app\models\Posts::find()
	->select([
		'name',
		'category' => 'postsmeta.mvalue',
	])
	->joinWith('meta')
	->where(['postsmeta.mkey'=>'category'])
	->andWhere(['postsmeta.mvalue'=>'cat 2'])
	->asArray()
	->all();

В ответе:
Array
(
[0] => Array
(
[name] => Статья 1
[category] => cat 2
[meta] => Array
( )
)

[1] => Array
(
[name] => Статья 2
[category] => cat 2
[meta] => Array
(
)
)
)

Но я уверен, что это не правильно.
+ как правильно передать в массив meta, все значение из таблицу postsmeta, а в идеале, может даже не во вложенный массив, а ключами в основной?
  • Вопрос задан
  • 16 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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