如何在Laravel中为:: create设置字段?

Dev*_*Dev 0 laravel eloquent laravel-5 laravel-5.2

我使用此方法在DB中创建新行:

$input = $request->all();
return Recipient::create([$input]);
Run Code Online (Sandbox Code Playgroud)

如何$input使用值添加其他字段?

我试过了:

$input["user_id"] = Auth::id();
Run Code Online (Sandbox Code Playgroud)

但是当我显示查询INSERT时,我看不到字段 user_id

Mar*_*łek 5

这里的问题是你可能没有$fillableRecipient模型中设置属性.你应该添加user_id:

 $fillable = [ ..., 'user_id'];
Run Code Online (Sandbox Code Playgroud)

但是,合并输入通常不是处理此类事情的最佳方式.如果您已正确设置关系,则可以执行以下操作:

Auth::user()->recipients()->create($request->all());
Run Code Online (Sandbox Code Playgroud)