Как осуществить выборку из таблицы по id?

165
12 июля 2018, 07:40

Существуют таблицы 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,
]);
Answer 1

Правильней будет сделать через 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
}
Answer 2

Сам спросил - сам разобрался. Создал массив 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();
READ ALSO
PHP сохраняет поврежденный файл

PHP сохраняет поврежденный файл

Существует задача: сохранить файл по ссылке с помощью PHP и предоставить к нему доступ в Android приложении

184
Создание директории в Entity Symfony 4

Создание директории в Entity Symfony 4

Изучаю Symfony, пытаюсь структурировать файлы, есть следующий класс:

200
Авторизация в Instagram с помощью php?

Авторизация в Instagram с помощью php?

Есть сайт с авторизацией через ИнстаграмВ API инста добавил приложение и всё что для него нужно

166