Is the data posted to the controller? I see you commented out the dd call.
Jul 14, 2018
9
Level 2
Reservation Form to be Emailed
I created a contact form that emails the details to the client. The email is sent successfully and all validation with error messages work. I'm also creating a reservation form which should essentially do the same as the contact form. I've setup my reservation routes, views and controller but the email is not sent to mailtrap.io. I'm using the same controller for both the contact and reservation form. Not sure if that is maybe an issue?
My web.php file
Route::get('reservation', 'PageController@reservation');
Route::post('reservation', 'PageController@postReservation');
Route::get('contact', 'PageController@contact');
Route::post('contact', 'PageController@postContact');
My PageController
class PageController extends Controller
{
public function reservation()
{
return view('reservation');
}
public function postReservation(Request $request)
{
//dd($request->all()); -> Fill in data to test if form works
$request->validate([
'name' => 'required|string|min:2',
'email' => 'required|email',
'phone' => 'required|digits:10',
'date' => 'required|date_format:Y/m/d|after:today',
'seats' => 'required|integer',
'message' => 'min:10'
]);
$data = array (
'name' => $request->name,
'email' => $request->email,
'phone' => $request->phone,
'date' => $request->date,
'time' => $request->time,
'seats' => $request->seats,
'reservationMessage' => $request->message,
);
Mail::send('emails.reservation', $data, function ($message) use ($data) {
$message->from('[email protected]');
$message->to('[email protected]');
$message->subject($data['name']);
});
return redirect('reservation')->with('success', 'Thank you. We will contact you to confirm the booking');
}
public function contact()
{
return view ('contact');
}
public function postContact(Request $request)
{
//dd($request->all()); -> Fill in data to test if form works
$request->validate([
'name' => 'required|string|min:2',
'email' => 'required|email',
'number' => 'required|digits:10',
'subject' => 'required|min:3',
'message' => 'required|min:10'
]);
$data = array(
'name' => $request->name,
'email' => $request->email,
'number' => $request->number,
'subject' => $request->subject,
'bodyMessage' => $request->message
);
Mail::send('emails.contact', $data, function($message) use ($data) {
$message->from('[email protected]');
$message->to('[email protected]');
$message->subject($data['subject']);
});
return redirect('contact')->with('success', 'Your message has been sent. We will reply promptly');
}
}
My Reservation Form
<form method="post" id="reservation-form" action={{ action('PageController@postReservation') }}>
{{ @csrf_field() }}
<div class="row">
<div class="col-md-4">
<label>Name*</label>
<p><input type="text" name="name" class="reservation-fields" required/></p>
</div>
<div class="col-md-4">
<label>Email*</label>
<p><input type="text" name="email" class="reservation-fields" required/></p>
</div>
<div class="col-md-4">
<label>Phone*</label>
<p><input type="text" name="phone" class="reservation-fields" required/></p>
</div>
</div>
<!--end row-->
<div class="row">
<div class="col-md-4">
<label>Date*</label>
<p><input type="date" name="datepicker" id="datepicker" class="reservation-fields" size="30" required/></p>
</div>
<div class="col-md-4">
<label>Time*</label>
<p>
<select name="time" class="reservation-fields" >
<option value="10:00">10:00</option>
<option value="11:00">11:00</option>
<option value="12:00">12:00</option>
<option value="13:00">13:00</option>
<option value="14:00">14:00</option>
<option value="15:00">15:00</option>
<option value="16:00">16:00</option>
</select>
</p>
</div>
<div class="col-md-4">
<label>Seats*</label>
<p><input type="text" name="seats" class="reservation-fields" required/></p>
</div>
</div>
<!--end row-->
<label>Special Requests</label>
<p> <textarea name="message" id="message2" class="reservation-fields" cols="100" rows="4" tabindex="4"></textarea></p>
<p class="antispam">Leave this empty: <input type="text" name="url" /></p>
<p class="alignc"><input type="submit" value="Book Now" id="submit" /></p>
</form>
My Reservation Email Template
<p>Name: {{$name}}</p>
<p>Email: {{$email}}</p>
<p>Tel Nr: {{$phone}}</p>
<p>Date: {{$date}}</p>
<p>Time: {{$time}}</p>
<p>Seats: {{$seats}}</p>
<p>Message: {{$reservationMessage}}</p>
Please or to participate in this conversation.