Существуют таблицы recipes И users2recipes. В users2recipes записываются recipesId и usersId. Как оформить выборку recipes, где id = recipesId в контроллере? Не понимаю как это должно выглядеть. Пробовал так.
$id = Yii::$app->user->id;
$favorites = UsersRecipes::find()->where(['usersId' => $id])->all();
$model = Recipes::find()->where(['id' => $favorites->recipesId])->all();
return $this->render('saved', [
'model' => $model,
'favorites' => $favorites,
]);
Правильней будет сделать через relation.
В Вашем случае в модели UsersRecipes нужно добавить\редактировать метод relations, пример:
public function relations()
{
return [
'recipes'=> [self::HAS_MANY, 'Recipes', 'recipesId']
]
}
Теперь для вывода можно использовать созданную нами зависимость:
$user = UsersRecipes::find()->with('recipes')->where(['usersId' => $id])->all();
foreach ($user->recipes as $recipe) {
//do some here
}
Сам спросил - сам разобрался. Создал массив recipesId и уже с его элементами сравнил id recipes.
$id = Yii::$app->user->id;
$favorites = UsersRecipes::find()->where(['usersId' => $id])->all();
$recipesId = [];
foreach ($favorites as $favorites) {
$recipesId[] = $favorites->recipesId;
}
$model = Recipes::find()->where(['id' => $recipesId])->all();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости