Как составить правильно отношение?
Например: Есть 2 таблицы. Пользователей и например телефонов
id|name|money
1|Кент|0
2|Тнек|100
3|Нект|100
id|user_id|model|buy
1| 1|Nokia|100
1| 1|Xiaom|150
У пользователей 2 и 3 есть деньги на телефон Nokia, но они его еще не купили. Как получить список этих пользователей?
Users::where('money', '>=', 100)->hasMany('Mobiles');
Я видимо совсем в трех соснах запутался. Какое отношение использовать, и какую таблицу делать подчиненной? Или здесь отношениями не обойтись, и придется выбирать их циклом?
Ответы (1 шт):
Автор решения: youngoldman
→ Ссылка
Подсказали решение. То есть чтобы выбрать пользователей, которые не купили этот телефон и у которых есть на него деньги, можно сделать так:
$users = User::whereDoesntHave('phones', function (Builder $query) {
$query->where('model', 'Nokia');
})->where('money', '>=', 100)
->get();
// в User
public function phones()
{
return $this->hasMany('Phone');
}