我希望能够在创建新学生时为学生保存“后续日期”。此后续日期需要在未来2周。
我已设法在控制器中执行此操作,如下所示:
public function store(StudentRequest $request)
{
$data = $request->all();
$data['followup'] = Carbon::now()->addWeeks(2);
$student = Student::create($data);
// ....
}
然而,这感觉就像一个非常冗长的做事方式。我觉得应该有一种方法可以在模型上使用更少的代码自动完成。我想过使用Mutator,但这不起作用,因为'followup'字段实际上并没有从任何地方设置。
答案 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);
}
...