Получить связанный элемент через сводную таблицу - PullRequest
0 голосов
/ 23 февраля 2020

Хочу поделиться рецептами между 2 пользователями.

У меня есть следующие таблицы (упрощенно):

рецепты

id | user_id | text

пользователи

id | name

users_recipe_sharing

user_1 | user_2 

Таким образом, по умолчанию контроллер должен возвращать все рецепты, сделанные пользователем (просто используя recipes.user_id). Но я также хочу проверить сводную таблицу, чтобы увидеть, является ли пользователь частью пары совместного использования, и если это так, то также выбрать все рецепты других пользователей.

До сих пор я создал функциональность для свяжите пользователей в моей пользовательской модели :

public function usersRecipeSharing() {
    return $this->belongsToMany('App\User', 'users_recipe_sharing', 'user_1', 'user_2')->withTimestamps();
}

public function addUserRecipeSharing(User $user) {
    $this->usersRecipeSharing()->attach($user->id);
}

public function removeUserRecipeSharing(User $user) {
    $this->usersRecipeSharing()->detach($user->id);
}

Но теперь я борюсь с контроллером рецептов - как мне объединить эти таблицы, чтобы вернуть как личные рецепты, так и общие?

...