Laravel - 如何处理PUT表单上的错误?

时间:2016-02-15 17:40:54

标签: validation laravel laravel-5

我正在使用laravel 5.2并希望以编辑形式验证某些数据。我的目标应该是显示错误并在输入字段中保留错误的数据。

我的问题是输入已由ContentRequest验证,FormRequest返回

$this->redirector->to($this->getRedirectUrl())
                                ->withInput($this->except($this->dontFlash))
                                ->withErrors($errors, $this->errorBag);

到目前为止还不错。下一步调用控制器中的edit操作,并覆盖所有参数。

我目前所做的事情:

ContentController

public function edit($id)
{
    $content = Content::find($id);

    return view('contents.edit', ['content' => $content]);
}

public function update(ContentRequest $request, $id)
{
    $content = Content::find($id);

    foreach (array_keys(array_except($this->fields, ['content'])) as $field) {
        $content->$field = $request->get($field);
    }
    $content->save();

    return redirect(URL::route('manage.contents.edit', array('content' => $content->id)))
        ->withSuccess("Changes saved.");
}

ContentRequest

class ContentRequest extends Request
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'title' => 'required|min:3',
            'body' => 'required|min:3'
        ];
    }
}

我该如何解决这个问题?表格如下:

<form action="{!! URL::route('manage.contents.update', array('content' => $content->slug)) !!}"
          id="site-form" class="form-horizontal" method="POST">
        {!! method_field('PUT') !!}
        {!! csrf_field() !!}

        <div class="form-group {{ $errors->has('title') ? 'has-error' : '' }}">
            <label for="title" class="col-sm-2 control-label">Title</label>

            <div class="col-sm-10">
                <input type="text" class="form-control" name="title" id="title" placeholder="Title"
                       value="{{ $content->title }}">

                @if ($errors->has('title'))
                    <span class="help-block">
                        <strong>{{ $errors->first('title') }}</strong>
                    </span>
                @endif
            </div>
        </div>
    </form>

1 个答案:

答案 0 :(得分:2)

尝试以下内容:

value

请注意Retrieving Old Data属性。同样check the documentation并找到{{1}}。