Laravel フォームから受け取ったリクエストパラメーターにデータを足してDBにinsertする方法

例)

companyテーブルに
フォームから受け取った$request->all()に加え
user_idカラムに1をセットしてinsertしたい場合

方法1)

$request->merge(array('user_id' => 1));
$company = Company::create($request->all());

createを使ってやる方法
createはinsertまで一気にやってくれて便利だけど
create()の段階でデータを揃えておかなければいけないので
requestパラメータに’user_id’を追加してからcreate()する

方法2)

$company = new Company($request->all());
$company->user_id = 1;
$company->save();

インスタンスを作る方法
まず、リクエストパラメーター分でCompanyのインスタンスを作っておき
DBインサートに必要な’user_id’を追加してsave()する

結論)

方法1のcreate()時も方法2のnew時も
modelの$fillable分しかセットされないし
どちらも同じように見えるが、他にどんなメリットデメリットがあるんだろう?

フォームから受け取ったものに足したり加工したりして
DBにインサートすることはよくあるのでどっちが良いのか迷う。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です