ここもサクッと作成できると思う。
namespace App\Repository;
use App\Model\EatingHistoryItem;
class EatingManagementRepository
{
private $templateParamNames = ['item', 'protein', 'liqid', 'carbo', 'calorie'];
/**
* ヒストリにデータを1件追加する
*/
public function addHistory($param, $user)
{
$model = new EatingHistoryItem();
foreach($this->templateParamNames as $name)
{
$model->$name = $param[$name];
}
$model->save();
$this->attachToUser($model, $user);
}
class ApiController extends Controller
{
/**
* データを1件登録する
*/
public function add(Request $request)
{
$paramNames = $this->eatingManagement->getParam();
$param = [];
foreach($paramNames as $name) {
$param[$name] = $request->contents[$name];
}
$this->eatingManagement->add($param, Auth::user(), $request->contents['timezone']);
$this->eatingManagement->addHistory($param, Auth::user());
return response()->json();
}
入力したデータをそのまま履歴にも記入する、という処理ですな。
ここまではサクッとできたけど、次回からはかなりヘビーになると思う。