在Laravel中创建新记录时设置自定义日期字段

时间:2016-02-03 17:44:24

标签: laravel

我希望能够在创建新学生时为学生保存“后续日期”。此后续日期需要在未来2周。

我已设法在控制器中执行此操作,如下所示:

public function store(StudentRequest $request)
{
    $data = $request->all();

    $data['followup'] = Carbon::now()->addWeeks(2);

    $student = Student::create($data);

    // ....
}

然而,这感觉就像一个非常冗长的做事方式。我觉得应该有一种方法可以在模型上使用更少的代码自动完成。我想过使用Mutator,但这不起作用,因为'followup'字段实际上并没有从任何地方设置。

1 个答案:

答案 0 :(得分:1)

您可以像这样扩展模型中的save功能:

...
public function save(array $options = []) {

    if(!$this->exists){ # only before creating
        $this->attributes['followup'] = Carbon::now()->addWeeks(2);
    }

    return parent::save($options);
}
...