【发布时间】:2020-03-01 19:29:22
【问题描述】:
我正在尝试更新帖子,为此我有带有以下标记的表单
<form method="post" action="{{ admin_url('services/'.$service->id) }}">
<input name="_method" type="hidden" value="PATCH">
<div class="form-group">
<label for="name">Service Name</label>
<input type="text" class="form-control" id="name" name="name"
value="{{ old('name') ? old('name') : $service->name }}">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
最初,当表单打开时,它应该显示模型值 {{$service->name}},一旦提交表单,如果验证失败,它必须显示旧输入
问题是输入为空时,逻辑{{ old('name') ? old('name') : $service->name }}
计算结果为 false 并显示 $service->name 而不是空值。
我的控制器代码
public function update($id, Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255|min:5'
]);
$service = Service::find($id);
$service->name = $request->input('name');
$service->save();
return redirect(admin_url('services'))->with('message', 'Service updated successfully');
}
【问题讨论】:
-
试试
{{ old('name', $service->name) }} -
当您的验证失败时,您在控制器中重定向回表单的语句是什么?请添加您的控制器代码。
-
嗨 Digvijay,我已经添加了我的控制器代码,你能帮帮我吗
-
@user3209130 你能试试
Validator::make()方法吗,因为它有那个方法fails() -
@user3209130 我的代码解决了你的问题吗?
标签: laravel forms validation