我有一个名为的模型:
Post with attributes id | name | extra_income
当我从请求获取数据extra_income
正在发送为extra_pay
所以当我做Post::create(request()->all());
extra_income
因为明显的原因名称无法匹配时为空。
问题是有什么方法可以在Post模型上修改extra_income
属性,所以我可以将它映射到extra_pay
你在找mutator。并且不要忘记将它附加到$fillable
属性,因为你将使用create
。
class Post
{
protected $fillable = [
// ...
'extra_pay',
];
public function setExtraPayAttribute($value)
{
$this->attribute['extra_income'] = $value;
}
}
据我所知,你有一个形式的extra_pay
和extra_income
表中的posts
。处理此问题的最佳方法是将表单中元素的名称更改为extra_income
。
或者,你可以这样做:
$data = request()->all();
$data['extra_income'] = $data['extra_pay'];
Post::create($data);
要么:
Post::create(request()->all() + ['extra_income' => request('extra_pay')]);
你可以在3个地方做到这一点
$request->merge(['extra_income' => $request->extra_pay]);
在传入请求中更改它