【发布时间】:2016-01-20 00:22:23
【问题描述】:
我想知道是否有人知道我该怎么做。
目前,我正在使用表单请求验证,所以我的 store 方法看起来像
public function store(ProfileStore $request)
{
// do stuff.
Input::flush();
return redirect()->back();
}
^ 请注意输入刷新,我不希望某些输入存储为“旧输入”或传递回表单,因此我正在刷新它。
然后在我的 ProfileStore 我有一些基本的验证(例如。
public function rules()
{
return [
'title' => 'required|max:255',
'body' => 'required',
];
}
问题是当我使用请求验证时,它将输入连同错误消息一起传递回表单。我尝试从验证文件中刷新输入,但不起作用。
如果我从我的 store 方法手动创建一个验证器并且不使用请求验证它可以正常工作并且不会传回输入。
更新:
所以我使用 Laravel 集体表单和 HTML,我认为它与此有关。这很奇怪,因为我正在使用 Form::open 并且据我所知只有 Form 模型绑定应该在 Form::model 上执行此操作..
如果我删除
Form::text('testfield', null);
并替换为标准输入
<input tpye="text" name="testfield" value="">
验证正确后不返回任何输入。但是,当使用 Form::input 时,值会从验证中返回。
{!! Form::open(['route' => ['frontend.account.profile.save'], 'id' => 'profile-update', 'class' => 'profile', 'role' => 'form']) !!}
<div class="form-body">
<div class="row" id="billing_details_div">
<div class="col-xs-12">
{{-- Input gets passed back after failed validation when using Form::text() --}}
Form::text('testfield', null);
{{-- No Input gets passed back when using stantard HTML input
<input tpye="text" name="testfield" value=""> --}}
</div>
<div class="col-md-12 text-center">
<button type="submit" class="btn btn-lg btn-success"><span class="glyphicon glyphicon-floppy-disk"></span> Update Profile</button>
</div>
</div>
</div>
{!! Form::close() !!}
有什么想法吗?
【问题讨论】:
-
您的意思是旧输入在重定向回来后会显示在表单中?请在您的问题中包含您的表单 html 代码
-
正确,好像和Form::有关,因为标准html输入没有返回输入。
-
只使用
Form::text('testfield'),甚至没有` Input::flush(); ` 假设可以开箱即用,您是否在另一个网络浏览器中进行了测试?
标签: laravel laravel-5 laravel-5.1