У меня есть таблица, подобная следующей: ![enter image description here](https://i.stack.imgur.com/NpQ7h.png)
, поэтому у пользователя много balance_transactions
, а последняя добавленная запись balance_transactions
будет балансом аккаунта пользователя. мой вопрос, как заставить user model
иметь свойство account_balance со значением, которое в последний раз вставлено total
в balance_transactions
таблицу
Я пытался использовать что-то подобное в пользовательской модели
public function balance {
return $this->hasMany(App\BalanceTransaction::class);
}
public function account_balance {
return $this->balance()->orderBy('id', 'DESC')->limit(1);
}
И Я получаю данные, подобные этим
$user = User::where('id', 1)->with('account_balance')->first();
return response()->json($user);
, и результат выглядит следующим образом json:
{
"id": 1,
"username": "john0131",
"full_name": "john doe",
"email": john@test.com,
"account_balance": [
{
"id": 234,
"user_id": 1,
"total": 7850
"added_value": 50
"created_date": "2020-02-28 12:18:18"
}
]
}
, но что я хочу, возвращаемое значение должно быть таким, как показано ниже json :
{
"id": 1,
"username": "john0131",
"full_name": "john doe",
"email": "john@test.com",
"account_balance": 7850
}
мой вопрос, как сделать что-то подобное в laravel красноречивым правильным способом? поэтому я могу получить account_balance
данные только с простым кодом, таким как $user = user::find(1);
.
Заранее спасибо