As first, that contact form works. When all data are valid, it works properly. 'success' session message works as well.
But, if I miss some of required data. Nothing is happend. On click on submit, page is reloaded, email isn't send (expected), but from some reason laravel don't return 'failed' session message.
Form
<div class="row">
<div class="col-12">
<form action="" method="POST">
<div class="row">
<div class="form-group col-md-6">
<input class="form-control" name="name" id="name" placeholder="Ime i prezime *">
</div>
<div class="form-group col-md-6">
<input class="form-control" name="email" id="email" placeholder="Email *">
</div>
<div class="form-group col-md-6">
<input class="form-control" name="telephone" id="telephone" placeholder="Broj telefona">
</div>
<div class="form-group col-md-6">
<input class="form-control" name="website" id="website" placeholder="Adresa Web stranice">
</div>
<div class="form-group col-md-12">
<input class="form-control" name="subject" id="subject" placeholder="Naslov poruke">
</div>
<div class="form-group col-md-12">
<textarea class="form-control" rows="6" name="message" id="message" placeholder="Tekst poruke"></textarea>
</div>
<div class="col-md-12">
<button type="submit" class="btn btn-default submit btn-block"><i class="fa fa-paper-plane" aria-hidden="true"></i>Pošalji mail</button>
</div>
</div>
</form>
</div>
@if (Session::has('success') || Session::has('failed'))
<div class="col-12">
@include('partials/_messages')
</div>
@endif
</div>
Partials (messages)
@if (Session::has('success'))
<div class="alert alert-success" role="alert">
<strong>Bravo:</strong> {!! Session::get('success') !!}
</div>
@endif
@if (Session::has('failed'))
<div class="alert alert-danger" role="alert">
<strong>Pozor:</strong> {!! Session::get('failed') !!}
</div>
@endif
@if (count($errors) > 0)
<div class="alert alert-danger" role="alert">
<strong>Pogreška:</strong>
<ul>
@foreach ($errors->all() as $error)
<li></li>
@endforeach
</ul>
</div>
@endif
Controller
public function postContact(Request $request) {
$this->validate($request, array(
'name' => 'required|max:50',
'email' => 'required|email',
'telephone' => 'max:50',
'website' => 'max:50',
'subject' => 'min:3',
'message' => 'required|min:5'
));
$data = array(
'name' => $request->name,
'email' => $request->email,
'telephone' => $request->telephone,
'website' => $request->website,
'subject' => $request->subject,
'bodyMessage' => $request->message
);
Mail::send('emails/contact', $data, function($message) use ($data){
$message->from($data['email']);
$message->to('no-replay@mail.eu');
$message->subject($data['subject']);
});
Session::flash('success', 'Poruka je uspješno poslana!');
return redirect()->route('website.index');
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire