概要
- Eloquantのupdateを用いてカラム情報を更新する方法をメモ的にまとめる
謝辞
- こちらの知見は一緒にプロジェクトに参画してくださっているエンジニアさんから教えていただいた内容です。
- 改めてこの場を借りてお礼申し上げます!教えていただきありがとうございます!
情報
- 今回のコードは下記のリポジトリにアップしている。
方法
-
当該のモデルクラスで
$fillable
を登録する。(updateで編集可能なカラム名を$fillableに記載して登録する。)app/Models/Content.php/** * 複数代入可能な属性 * * @var array */ protected $fillable = [ 'カラム名', ];
-
当該のモデルクラスを用いてDBを更新する処理が記載されている箇所に下記のような記載を行う。(筆者の場合リポジトリクラスにDBアクセス処理が記載されている。)
app/Repositories/ContentRepository.php<?php namespace App\Repositories; use App\Models\Content; use Illuminate\Database\Eloquent\Model; class ContentRepository implements ContentRepositoryInterface { public function __construct(Content $content) { $this->content = $content; } /** * idを用いて情報を取得 * * @param integer $id * @return Content */ public function getById(int $id) { return $this->content->find($id); } /** * 投稿内容の保存 * * @param array $requestBody * @return Model */ public function update($requestBody) { $content = $this->getById($requestBody['id']); return $content->update($requestBody); }
-
ちなみに上記の
update()
に渡される$requestBodyには下記のような値が格納されている。array:2 [▼ "id" => "12" "content" => "投稿編集内容" ]