Laravel 5 - 将所有POST数据插入数据库?

时间:2016-08-25 17:31:50

标签: laravel-5 eloquent

我正在使用Laravel 5,我创建了一个资源控制器,设置路由并设置我的数据库模型。

我的问题是:当我执行 POST 时,我的store方法在控制器上被调用但是如何获取请求数据并在db中插入新条目而不必显式设置每个场?

这是我的代码:

public function store(Request $request)
{
  $data = $request->all(); // this grabs all my request data - great!
  $user = new User;
  $user-> ??? // insert ALL posted data
  $user->save();
}

我知道我能做到......

$user->name = $request->name;

...适用于每个领域。但有人可以告诉我如何插入一切?

我意识到我可以做一个foreach,但我想知道是否有更好的东西。

1 个答案:

答案 0 :(得分:3)

每个模型https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Model.html#method_fill都有方法fill

$user->fill($request->all());

最终您可以使用create

\User::create($request->all());

以上称为质量对齐,在Eloquents文档中有关于此的部分https://laravel.com/docs/5.1/eloquent 您需要定义可能设置的键:

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    // The attributes that are mass assignable
    protected $fillable = ['name', 'login', 'birthdate'];
}