【发布时间】:2017-05-03 00:48:24
【问题描述】:
我正在开发一个需要根据用户特定货币重新计算价格的后端。
我从数据库中获取所有需要的记录如下:
$tasks = Task::with([
'images' => function($query){},
'price' => function($query){},
'user' => function($query){ $query->with('images');},
])->whereDoesntHave('tasksState', function($query) use ($user){
$query->where('user_id', $user->id);
$query->where('state', '<>', 0);
})->where('id', '>', $offset)->where('user_id', '<>', $user->id)->take($limit)->get();
任务的价格模型由货币和价值属性组成。
然后我遍历 $tasks 并根据用户特定的货币重新计算价格:
foreach ($tasks as $k => $task){
$price = $task->price->value;
$price = $price * $rate->getValue();
$tasks[$k]->price = $price;
//$task->price = $price;
}
检查任务后,所有价格都重新计算正确。
但是,当我随后序列化 $tasks 并将其作为响应发送时,它包含从数据库中获取的数据 - 没有重新计算价格。
有没有人是哪里出了问题?任何想法将不胜感激!
【问题讨论】: