如何在Laravel中更改属性的名称

时间:2017-12-28 09:35:26

标签: laravel

我有一个名为的模型:

plugins

当我从请求Post with attributes id | name | extra_income 获取数据时,extra_income正在发送 所以当我extra_pay Post::create(request()->all());为空时,由于明显的原因,名称不匹配。

问题是否有任何方法可以修改Post模型的extra_income属性,以便将其映射到extra_income

3 个答案:

答案 0 :(得分:3)

您正在寻找mutator。并且不要忘记将其附加到$fillable属性中,因为您将使用create

class Post
{
    protected $fillable = [
        // ...
        'extra_pay',
    ];

    public function setExtraPayAttribute($value)
    {
        $this->attribute['extra_income'] = $value;
    }

}

答案 1 :(得分:0)

据我了解,您在表格中有UIGestureRecognizerStateCancelled,在extra_pay表格中有extra_income。处理此问题的最佳方法是将表单中元素的名称更改为posts

或者,你可以这样做:

extra_income

或者:

$data = request()->all();
$data['extra_income'] = $data['extra_pay'];
Post::create($data);

答案 2 :(得分:0)

你可以在3个地方做到

  • 改变您的表格,这是最佳选择。
  • 使用合并$request->merge(['extra_income' => $request->extra_pay]);
  • 在传入请求中更改它
  • 或者通过手动设置所有值,在Post :: create方法中更改它。