我有一个事件模型,我可以在其中更新事件的开始日期。我有一个突变器:
protected function setStartAttribute($value)
{
$date = \Datetime::createFromFormat('d.m.Y H:i:s', $value);
$this->attributes['start'] = $date->format('Y-m-d H:i:s');
}
我需要更新具有相同代码的事件集合,我对这些事件调用更新,但我没有得到有效日期,它在数据库中输入 0000-00-00 00:00:00,但验证通过。
public function putDate($code)
{
$models = Events::where('code','=',$code);
$rules = array(
'start' => 'required|date_format:d.m.Y H:i:s'
);
$validate = Validator::make(Input::all(), $rules);
if ($validate->fails())
{
return Redirect::action('AdminEventsController@getShow', $code)
->withErrors($validate->messages())
->withInput();
}
$models->update(array('start' => Input::get('start')));
setMsg('Saved!');
return Redirect::action('AdminEventsController@getShow', $code);
}
我找到了一个这样的工作解决方案:
public function putDate($code)
{
$models = Events::where('code','=',$code)->get();
$rules = array(
'start' => 'required|date_format:d.m.Y H:i:s'
);
$validate = Validator::make(Input::all(), $rules);
if ($validate->fails())
{
return Redirect::action('AdminEventsController@getShow', $code)
->withErrors($validate->messages())
->withInput();
}
foreach ($models as $model)
{
$model->start = Input::get('start');
$model->save();
}
setMsg('Saved!');
return Redirect::action('AdminEventsController@getShow', $code);
}
这里有什么问题?更新方法是否跳过突变器?