所以我正在制作这个网站,您可以在其中购买游戏机,所以我制作了一个临时文件,但我希望不可能在数据库中插入重复项,但是当我创建重复项时,您会收到 laravel 错误,并且对用户不友好。所以我想显示一条正常的消息,说你复制了。所以我做了这个。
public function store(Request $request)
{
try
{
$consoles = new consoles();
$consoles->naam = input::get('naam');
$consoles->releasedate = input::get('releasedate');
$consoles->company = input::get('company');
$consoles->price = input::get('price');
$consoles->created_at = null;
$consoles->updated_at = null;
$consoles->save();
}catch (\Exception $e)
{
return Redirect::to('console/create')
->withInput()
->withErrors(array('message' => 'duplicate'));
}
return redirect('consoles');
}
问题是 ->withErrors(array('message' => 'duplicate')) 没有显示任何内容。我做错了什么。
编辑
创建.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#datepicker" ).datepicker({ dateFormat: 'yy-mm-dd' }).val();
} );
</script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading"> creating data</div>
<form method="POST" action="{{url('games/store/')}}">
naam: <br>
<input type="text" name="naam" required>*required<br>
releasedate: <br>
<input type="text" name="releasedate" id="datepicker" required>*required<br>
company: <br>
<input type="text" name="company" required>*required<br>
price: <br>
<input type="number" name="price" min="0" value="0" step=".01" required>*required<br>
<input type="hidden" name="_token" value="{{{ csrf_token() }}}" />
<input type="submit" name="create" value="create">
</form>
</div>
</div>
</div>
</div>
</body>
</html>
最佳答案
当你设置withErrors
时,你不需要传递数组,只需编写像这样的错误消息->withErrors('Duplicate');
在 View 中记得检查是否有错误
@if ($errors->count())
<div class="col-md-12">
<div class="alert alert-danger text-center">
@foreach ($errors->all() as $error)
<p>{{$error}}</p>
@endforeach
</div>
</div>
@endif
关于laravel 在 try catch 中使用 withErrors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50741117/