Добавить поле в модель из select (select sum(weight) as weight from table)
Есть две таблицы:
Users:
id,
name,
weight
и
Things:
id,
user_id,
weight
Модель User привязана отношением к другой модели.
Мне нужно, чтобы при любых обращениях к модели Users мне она возвращалась с полями:
id,
name,
weight,
full_weight
full_weight = (select sum(weight) from things where user_id=users.id) full_weight + users.weight
и сортировкой по полю full_weight
Ответы (1 шт):
Автор решения: n.osennij
→ Ссылка
Можно добавить в текущему перечню модели User поле, которые будет всегда автоматически возвращаться с другими стандартными полями при запросе. В модели:
protected $appends = ['full_weight'];
public function getFullWeightAttribute()
{
//$this->things // получить коллекцию связанных вещей
return 76; // перед этим любая ваша логика, запросы и всё, что душе угодно
}