【发布时间】:2018-02-01 21:00:26
【问题描述】:
我正在尝试在单页网站上获取 Laravel 联系表单的正确路线,但我不确定到目前为止如何应用这些路线,因为我已经使用非单页网站完成了此操作(视差 - 像网站/可滚动)。
这些是我正在创建的路线,所以所有内容都保留在主页上(根本没有重定向,因为它是一个单页可滚动网站)
Route::get('/', 'ContactUsController@create')->name('contact.create');
Route::post('/', 'ContactUsController@store')->name('contact.store');
我的控制器看起来像这样:请注意,创建控制器将视图返回到我的索引,这当然是这样路由的('/'),
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Mail\ContactEmail;
class ContactUsController extends Controller
{
public function create()
{
return view('index');
}
public function store(Request $request)
{
$contact = [];
$contact['name'] = $request -> get('name');
$contact['phone'] = $request -> get('phone');
$contact['email'] = $request -> get('email');
$contact['subject'] = $request -> get('subject');
$contact['message'] = $request -> get('message');
//send mail logic here
Mail::to(config('mail.support.address'))->send(new ContactEmail($contact));
flash('Your Message has been sent!) -> success();
return redirect()-> route('/');
}
}
下面是我的联系表:
{!! Form::open(['route' => 'contact.store', 'class' => 'text-light '])!!}
{!! Form::label('name', 'Your Name', ['class' => 'text-light'])!!}
{!! Form::text('name', null, ['class' => 'form-control text-light'])!!}
{!! Form::label('phone', 'tel', ['class' => 'text-light'])!!}
{!! Form::text('phone', null, ['class' => 'form-control text-light'])!!}
{!! Form::label('email', 'Email', ['class' => 'text-light'])!!}
{!! Form::text('email', null, ['class' => 'form-control text-light'])!!}
{!! Form::label('subject', 'Subject', ['class' => 'text-light'])!!}
{!! Form::text('subject', null, ['class' => 'form-control text-light'])!!}
{!! Form::label('message', 'Your Message Here..', ['class' => 'text-light'] )!!}
{!! Form::textarea('message', null, ['class' => 'form-control text-light'])!!}
{!! Form::submit('Submit', ['class' => 'btn btn-info']) !!}
{!! Form::close() !!}
@if($errors -> any())
<div class="alert alert-danger">
<ul>
@foreach($errors -> all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@include('flash::message')
通过解决方案解决问题:
//routes for contact form
Route::get('/contacts', 'ContactUsController@create')->name('contact.create');
Route::post('/contacts', 'ContactUsController@store')->name('contact.store');
其他都一样。 感谢大家的支持。
【问题讨论】:
-
请注意:当我点击提交按钮时,什么也没有发生,甚至 $errors 也没有显示,只是为了确保表单正常工作。
-
检查 laravel.log
标签: php laravel-5.5 contact-form