在Laravel中找不到页面,路由问题

时间:2019-04-12 05:44:12

标签: php laravel laravel-5

我的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">&times;</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> 

5 个答案:

答案 0 :(得分:1)

进行如下路线:

Route::match(['get', 'post'],'/apply_now', 'HomeController@apply_now');

答案 1 :(得分:1)

看起来代码没有错误,您可以清除缓存吗?

php artisan route:cache

enter image description here

您看到图片中的区域了吗?

答案 2 :(得分:1)

尝试添加

{{ csrf_field() }} 

这会将CRSF令牌字段添加到您的表单中

例如<input type="hidden" name="_token" value="SomeRandomString">

laravel要求的

,默认情况下所有路由上均启用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');

希望这会有所帮助:)