2016-07-19 5 views
0

私はDBに新しい行を作成するには、このメソッドを使用します。Laravelで:: createのフィールドを設定する方法は?

$input = $request->all(); 
return Recipient::create([$input]); 

私は値で$inputに追加フィールドを追加することができますどのように?

私が試した:

$input["user_id"] = Auth::id(); 

をしかし、私は、クエリのINSERTを表示するとき、私はまだあなたが探している正確に何かわからないフィールドuser_id

+0

テーブルに列を追加しますか? –

+0

いいえ '$ input = $ request-> all();'に新しい入力フィールドを追加したいこのfielsはリクエストでは送信されませんが、テーブルに存在します – Dev

答えて

4

ここでの問題は、あなたはおそらく設定されていないということです:Merge new input into the current request's input array.

$request->merge(['user_id' => Auth::user()->id]); 
Recipient::create($request->all()); 

は、ここでAPIドキュメントを参照してください:

マージ

方法mergeは、あなたが探しているものですRecipientモデルの$fillableプロパティ。あなたはそこにuser_idを追加する必要があります。ただし、入力をマージ

$fillable = [ ..., 'user_id']; 

は通常、そのようなことに対処するための最良の方法ではありません。関係を適切に設定した場合、次のようなことが可能になります。

Auth::user()->recipients()->create($request->all()); 
0

を見ることはできません。 2-3フィールドuser_idtitlecontentがあるとします。データベースに挿入するには、次の操作を行う必要があります。

$input = new Recipient(['title'=>'You title', 'content'=>'Your content']); 
$input->save(); 

増分されたuser_idを持つ2つのフィールドが保存されます。あなたは間違った方法を使用している

0

ブロ、 は、この方法を試してください。

$input["user_id"] =Auth::user()->id; 
関連する問題