2015-11-05 45 views
2

我有一個Laravel 5.1應用程序,它擁有許多客戶端,並擁有自己獨特的子域和數據庫。排隊的路由()網址在URL中有錯誤的域

在應用程序加載,我的中間件解決了客戶端,並設置app.url(配置/ app.php)相應。這一切都很好,在瀏覽器中。所有由route()生成的url都有當前客戶端的正確子域名。

但是,排隊的東西(在我的情況Redis的)總是默認爲「localhost」的域名URL。

所以,如果我把其中的文字模板包含路徑(「賬戶」),它會從隊列中生成一個「http://localhost/account」 URL歡迎電子郵件。這當然是不正確的。

我發現,也許這樣做,它在照亮\基金會\引導\ SetRequestForConsole類行:

$url = $app->make('config')->get('app.url', 'http://localhost'); <--- 

據我所看到的,我真的不能「掛鉤」到之前的任何事情。

信息:對於每一個排隊命令(關閉)我有,我總是用它發送客戶端是誰,真實queing。這樣我在排隊的命令被觸發之前設置客戶端。它加載正確的數據庫連接。但更改默認路由()服務器名稱顯得相當困難!

我已經嘗試了擴展UrlGenerator類,但現在看來,這是完全忽略了排隊的命令並且僅適用於HTTP請求。

我也嘗試添加此之前隊列命令被觸發:

app('url')->forceRootUrl($client->getClientUrl()); 

它沒有工作。 (但不與HTTP請求的工作)在這裏

任何人有如何設置路徑()在命令行模式下我自己的默認域的想法?

+0

也許你可以生成鏈接,然後將它傳遞給排隊的數據,而不是調用郵件模板內的路線(「帳戶」)。 –

回答

0

在您的環境配置(.ENV)文件,添加一個條目:

APP_URL='http://www.example.com' 

然後在你的config/app.php文件從本地主機更改應用程序網址:

---------------- 
Application URL 
---------------- 
... 
... 
//'url' => 'http://localhost', 
'url' => env('APP_URL'), 
... 

這兩個當我在Laravel 5.1中使用數據庫隊列驅動程序時,更改對我有效。

0

我的情況你有子域,你想使路由URL與子域,所以在這種情況下可能會有問題。

我在我的應用程序中使用了這個。 配置/ app.php文件

... 
... 
//'url' => 'http://localhost', 
'url' => url('/'), 
...