2015-10-13 101 views
2

我有一个使用模型绑定的表单将数据输入到数据库中。我试图通过https服务它,但无法弄清楚。保护模型绑定的Laravel表格

这里的观点:

{!! Form::model(new App\MissingHours, ['route' => ['missinghours.store'], 'class' => 'form-horizontal']) !!} 
     @include('missinghours/_form', ['submit_text' => 'Submit Hours']) 
    {!! Form::close() !!} 

我试过设置的URL https://appurl/missinghours/store但显然没有奏效。我也在Form :: open_secure之后尝试了model_secure,并没有奏效。当我通过https提供页面并尝试提交表单时,我收到一条关于它不安全并且未提交数据的警告。

控制器:

$input = Input::all(); 
$save = MissingHours::create($input); 
+0

这可能是因为您没有在服务器中设置SSL证书。 –

+0

它在heroku上,并且有一个有效的SSL证书。该页面通过https加载,锁定图标显示在browswers中,您可以验证证书,它只是表单。 –

回答

0

如果你需要你的整个网站是HTTPS - 包括表单,您可以插入下面RewriteEngine On以下代码对你public/.htaccess文件:

RewriteCond %{HTTPS} !=on 
# This checks to make sure the connection is not already HTTPS 

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

编辑:

您可以像这样创建一个before中间件:

<?php 

namespace App\Http\Middleware; 

use Closure; 

class BeforeMiddleware 
{ 
    public function handle($request, Closure $next) 
    { 
     if (! $request->secure()) return redirect()->secure($request->getRequestUri()); 

     return $next($request); 
    } 
} 

然后在窗体中使用该中间件。

更多关于Laravel Middlewares here

+0

是的,我可以使用.htaccess,但我一直在寻找Laravel解决方案来保护表单,而不是整个网站。 –

+0

我使用'Middleware'添加了另一种可能的解决方案。 –