私は、ユーザー固有の通貨に基づいて価格を再計算する必要があるバックエンドで作業しています。応答を送信する前にモデルデータを変更する
私は次のように、データベースから必要なすべてのレコードをフェッチ:
$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();
タスクの価格モデルは、通貨および値の属性で構成されています。私は$タスクやユーザー固有の通貨に基づいて再計算する価格を反復
は次に:
foreach ($tasks as $k => $task){
$price = $task->price->value;
$price = $price * $rate->getValue();
$tasks[$k]->price = $price;
//$task->price = $price;
}
タスクを検査した後、すべての価格が正しく再計算されます。
しかし、後で$タスクをシリアル化して応答として送信すると、データベースからフェッチされたデータが再計算されます。
誰か問題がどこにありますか?どんなアイデアも大歓迎です!
私が探していたものを正確に、ありがとう! :-) – user3559787