, если вы начинаете с Laravel, поэтому я хотел бы внести что-то, чтобы сделать ваше программирование лучше и безопаснее для будущих проектов.
- всегда проверяйте ваш ввод
- использование блоки try & catch
- показывают пользователям соответствующее сообщение об ошибке, чтобы вы могли отладить его в будущем.
, поэтому модифицированный код будет выглядеть так:
public function checkout(Request $request){
// use Validator; (add this after namespace to import validator)
$validator = Validator::make($request->all(),[
'user_id' => 'required|integer|max:11',
'amount' => 'required|numeric',
'status' => 'sometimes|integer|max:1',
]);
if($validator->fails()) {
return back()->withErrors($validator);
}
try {
$user = auth()->user()->id;
$order = new order();
$order->user_id = $user;
$order->amount = $request->input('amount');
$order->status = 0;
$order->save();
$request->session()->flash('message', 'Order Successfully Created');
$order = order::where('status' ,0)->where('user_id', $user)->first();
return view('checkout.index', compact('order'));
} catch (\Exception $e){
dd($e->getMessage()); // it will show the error message with, you can replace this block with redirect code or anything else..
}
}
для отображения сообщения об ошибке и успехе во внешнем интерфейсе, используйте приведенный ниже код в шаблоне checkout> index.blade. php (просто пример кода, вы можете улучшить его, используя собственные стили CSS & & )
@if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
@if(count($errors) > 0)
<div class="note note-error">
<h4>Error..!!</h4>
<p>
@foreach($errors->all() as $error)
<div class="alert alert-danger fade in m-b-15">
<i class="fa fa-chevron-right"></i>
{{ $error }}
<span class="close" data-dismiss="alert">×</span></div>
@endforeach
</p>
</div>
@endif