2016-12-01 69 views
1

在我.ENV文件,我有APP_URL這樣設置:Laravel行動()輔助忽略APP_URL環境變量

APP_URL=https://example.com 

然而,無論我用action()助手生成一個URL,路徑使用http而不是https創建。

我不明白爲什麼會發生這種情況。該網站本身運行在SSL上。我也嘗試使用「https」設置BASE_URL環境變量 - 沒有運氣。

Laravel不應該尊重我的基本URL嗎?

Laravel版本:5.2

會出現這種情況action()幫手,以及使用HTML表單&集體Laravel包生成形式(包括action屬性)作爲。

+0

'config/app.php'呢?我的是''url'=> env('APP_URL','http:// localhost'),' –

+0

@Thomas是的,它的設置與此完全相同。 – lesssugar

+0

然後將其更改爲''url'=> env('APP_URL','https://example.com'),' –

回答

2

不幸的是action()不是基於app.url,而是基於你的請求根目錄,所以如果你瀏覽的是https,它應該給你一個基於https的基於url的url。但可以強制它做任何你需要做的事情:

app('url')->forceRootUrl(env('APP_URL')); 

我建議你做一個服務提供商。

0

此外,除了什麼安東尼在他的answer建議,您也可以使用forceSchema()方法:

AppServiceProvider.php

public function boot() { 

    if (App::environment('production')) { 
     URL::forceSchema('https'); 
    } 
} 

通知的代碼使用的門面,但您也可以使用全球幫助器app()