今天我正在清理我的代码并希望尽可能地重复使用它。我遇到了关于我的createdAt mutator的问题。
我所拥有的:在我们的前端,我们有2个不同的输入。我们确实有1个日期,1个时间:
<input type="text" name="date" class="form-control datepicker" required>
<input type="text" name="time" class="form-control timepicker" required>
一旦我收到对新闻控制器中的created_at属性的请求,我就会混在一起:
public function store(ManageNewsRequest $request, Project $project)
{
// Add user id, receive dates and add the image
$request['user_id'] = Auth::user()->id;
$request['created_at'] = [$request->input('date'),$request->input('time')];
$request['image'] = $request->file('image');
$project->news()->save(new News($request->all()));
Session::flash('alert', 'News post added');
return redirect()->route('admin.projectadmin.news.index', $project->id);
}
在我的模型中,我确实创建了一个mutator,它应该转换日期:
public function setCreatedAtAttribute($dateAndTime)
{
$this->attributes['created_at'] = Carbon::createFromFormat('d.m.Y H:i', $dateAndTime[0].' '.$dateAndTime[1]);
}
但是,无论如何我总是收到一个碳对象$ dateAndTime,这个对象是当前时间。这不是我收到的时间和日期。我已检查是否设置了日期和时间,并且设置正确。所以我以某种方式放松了我的数组,即使我已经设置了mutator。
为什么我的mutator没有被考虑在内?