我的Laravel和路线可能有问题,但我不确定。
因此,模态窗口中有一个联系表。当我单击Send
按钮时,出现页面未找到错误。
我在web.php
中拥有的是
Route::post('/apply_now','HomeController@apply_now')->name('apply_now');
在HomeController.php
public function apply_now(Request $request)
{
... form fields data
return Redirect::to('/')->with('message', 'Sent');
}
表格
{{Form::open(array('route'=>'apply_now','files' => true,'method'=>'post'))}}
...
form field
{{Form::close()}
错误
未找到
在此服务器上找不到请求的URL / apply_now。
我没有发现路线有什么问题,但仍然找不到问题。
更新:
| | POST | apply_now | apply_now | App\Http\Controllers\HomeController@apply_now
更新2.模态
<!-- Apply Modal -->
<div class="modal fade" id="apply" tabindex="-1" role="dialog" aria-labelledby="applyModalLable">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title text-center" id="applyModalLable">Apply Now</h4>
</div>
<div class="modal-body">
<form method="POST" action="https://example.com/apply_now" accept-charset="UTF-8" enctype="multipart/form-data">
<input name="_token" type="hidden" value="OyEdnHIWRgbZmPo0joodNmWraDSuuACIrwqup044">
<div class="form-group ">
<input type="text" name="your_name" class="form-control" placeholder="*Your Name" value="" >
</div>
<div class="form-group ">
<label>*Country</label>
<input type="text" name="country" class="form-control" placeholder="Your Country" >
</div>
<div class="form-group ">
<input type="text" name="contact_email" class="form-control" placeholder="*Contact Email" >
</div>
<div class="form-group ">
<input type="text" name="contact_phone" class="form-control" placeholder="*Contact Phone">
</div>
<div class="form-group text-center">
<button type="submit" class="btn btn-custom btn-sm btn-block">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
进行如下路线:
Route::match(['get', 'post'],'/apply_now', 'HomeController@apply_now');
答案 1 :(得分:1)
答案 2 :(得分:1)
尝试添加
{{ csrf_field() }}
这会将CRSF令牌字段添加到您的表单中
例如<input type="hidden" name="_token" value="SomeRandomString">
,默认情况下所有路由上均启用CSRF来检查发布请求是否安全,您也可以从
的中间件 VerifyCsrfToken.php 禁用它>app\Http\Middleware
要为您的路线禁用CRSF 更新
protected $except = [
//
'apply_now'
];
禁用此方法不是一个好习惯,如果您希望自己的应用程序安全
添加
{{ csrf_field() }}
以您的形式,例如
{{ Form::open(array('route'=>'apply_now','files' => true,'method'=>'post')) }}
...
form field
{{ csrf_field() }}
{{ Form::close() }}
现在,一旦您提交表单,laravel将检查crsf令牌是否随该表单一起发送,并让您的请求继续进行
答案 3 :(得分:0)
运行此命令,然后重试
php artisan optimize:clear
或
从
删除所有文件/bootstrap/cache
/storage/framework/cache/data
/storage/framework/sessions
/storage/framework/views
并确保已将两个URL都定义为web.php文件,如下所示:
Route::post('/','HomeController@index');
Route::post('apply_now','HomeController@apply_now')->name('apply_now');
,并确保您的服务器已打开mod重写。因此Laravel可以处理.htaccess规则。
答案 4 :(得分:0)
尝试一下,
Route::get('/', 'HomeController@index')->name('home');
在您的控制器中
return redirect()->route('home')->with('message', 'Sent');
希望这会有所帮助:)