首页  >  问答  >  正文

使用与 Laravel 中的数据库列名称不同的 html 输入名称

如何使用与我想要将此输入数据保存到的列名称不同的 html 输入名称

我通常使用这种方法,因为所有 html 输入名称都等于数据库列:

Model::create($request->all());

现在我知道我可以使用这个:

Model::create([
'name' => $request->name,
'feild' = > $request=>value,
etc.
]);

但是我有很多值,我不想一遍又一遍地重写它,那么有没有一种方法可以将 $request->all() 与第二种方法结合起来?

P粉818125805P粉818125805300 天前368

全部回复(2)我来回复

  • P粉627027031

    P粉6270270312024-01-17 11:55:32

    我发现PHP array_merge()函数可以使用如下所示:

    Model::create(array_merge($request->all(),['DB fieldName' => $newValue]));

    回复
    0
  • P粉731977554

    P粉7319775542024-01-17 09:29:07

    一种方法是使用 https://laravel.com /docs/9.x/collections#method-merge merge() 添加字段,并使用 https://laravel.com/docs/9.x/collections#method-only 仅返回要添加到模型中的字段,或 https://laravel.com/docs/9.x/collections#method-except 除外() 求逆

    $request->merge([
      'new_column_name' => $the_value_you_want_to_use,
      'old_column_name' => the_value_you_donot_want
    ]);
    $request->only('new_column_name')
    
    // or
    
    $request->except('old_column_name')
    

    回复
    0
  • 取消回复