3

我有一个事件模型,我可以在其中更新事件的开始日期。我有一个突变器:

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);
}

这里有什么问题?更新方法是否跳过突变器?

4

0 回答 0