- fillメソッド: fillメソッドは、モデルの属性を一括で設定するために使用されます。通常、リクエストデータや入力フォームからのデータをモデルにセットする場合に利用されます。例えば、以下のようなコードで使用されます。
$user = new User;
$user->fill($request->all());
$user->save();
上記の例では、リクエストの全データをユーザーモデルに一括して設定し、保存しています。fillメソッドは、モデルの属性に対して一括代入可能な属性($fillableプロパティで指定された属性)にのみ値を設定します。それ以外の属性は無視されます。
- updateメソッド: updateメソッドは、既存のモデルの属性を更新するために使用されます。データベース内の既存のレコードを更新する場合に利用されます。以下のようなコードで使用されます。
$user = User::find($id);
$user->update($request->all());
上記の例では、指定したIDのユーザーレコードを検索し、リクエストの全データで更新しています。updateメソッドもfillメソッドと同様に、一括代入可能な属性にのみ値を設定します。
注意点:
- fillメソッドとupdateメソッドの違いは、fillメソッドは新しいモデルインスタンスを作成し、属性を設定するのに対し、updateメソッドは既存のモデルインスタンスを更新します。
- fillメソッドを使用してモデルを保存する場合は、保存する前に明示的にsaveメソッドを呼び出す必要があります。一方、updateメソッドは更新と保存を同時に行います。
このように、fillメソッドとupdateメソッドはLaravelにおいてデータの一括設定と更新を行うための便利なメソッドです。どちらを使用するかは、操作するデータの状況に応じて適切に選択する必要があります。