我不明白为什么Laravel不会向我发送验证错误并将我重定向到302错误的视图。
我只是在视图中有简单的表单,只发送它:
@else
{{Form::open(array('route'=>'Link.store','name'=>'storeLink'.$key))}}
<div class="md-form input-group">
<input type="hidden" name="route_name" value="{{$route['name']}}">
<input type="hidden" name="href" value="{{$route['uri']}}">
<input pattern="[a-zA-Zéè \-]{3,35}" required class="form-control" type="text" name="title"
id="linkTitle{{$key}}"
value=""
placeholder="Ajoutez ici un titre à ce lien pour le rendre disponibles pour les menus">
<span class="input-group-btn">
<button type="button"
class="btn btn-default ml-2 btnUpdateLink">Ajouter</button>
</span>
{{Form::close()}}
</div>
@endif
表单将数据发送到我的store方法:
public function store(LinkRequest $request)
{
//dd($request->all());
try{
Link::create($request->all());
return redirect(route('Permission.index'))->with('success-message','Lien crée');
}catch (Exception $e){
$errorCode = $e->errorInfo[1];
dd($errorCode);
if($errorCode == 1062){
return redirect(route('Link.index'))
->with('error_message','Un lien existe déjà avec ce titre')
->with('create_name',$request->get('title'));
}
}
}
这是我的LinkRequest类:
public function rules()
{
return [
'title'=> array(
'required',
'max:35',
'unique:links,title,'.$this->Link,
'regex:[a-zA-Zéè]',
),
'route_name'=>array(
'required'
),
'href'=>array(
'required'
),
];
}
感谢您的帮助!
答案 0 :(得分:0)
这是FormRequests的正常行为我相信:
来自https://laravel.com/docs/5.6/validation#creating-form-requests
如果验证失败,将生成重定向响应以将用户发送回其先前的位置。错误也将闪现到会话中,以便可以显示。
您的错误应该可以在您的Blade模板中使用变量$ errors!
访问来自the official documentation的示例:
@if($errors->any())
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
答案 1 :(得分:0)
您需要确保将CSRF字段添加到表单中。这是通过在表单内部执行{{ csrf_field() }}
来完成的。
此外,您的表单中似乎有一些不正确的格式。 md-form
div开头在表单内,而结束时则在表单之外。
@else
{{Form::open(array('route'=>'Link.store','name'=>'storeLink'.$key))}}
{{ csrf_field() }}
<div class="md-form input-group">
<input type="hidden" name="route_name" value="{{$route['name']}}">
<input type="hidden" name="href" value="{{$route['uri']}}">
<input pattern="[a-zA-Zéè \-]{3,35}" required class="form-control" type="text" name="title"
id="linkTitle{{$key}}"
value=""
placeholder="Ajoutez ici un titre à ce lien pour le rendre disponibles pour les menus">
<span class="input-group-btn">
<button type="button" class="btn btn-default ml-2 btnUpdateLink">Ajouter</button>
</span>
</div>
{{Form::close()}}
@endif
答案 2 :(得分:0)
我做了这个,但没有显示错误(它在我的其他视图中有效):
@if(Session::has('error_message'))
<div class="alert alert-danger" id="flash_message"><em><i class="fas fa-exclamation-triangle mr-2"></i>
{{ session('error_message') }}</em></div>
@endif