2017-02-07 32 views
0

我已經在子文件夾中安裝了laravel。URL ::如何在laravel 5中工作?

例如

foo.com/laravel/

現在

foo.com/所有來電都被定向到不同的應用程序。

所有來電例如

foo.com/laravel/baz被定向到laravel

路線還是這個樣子

Route::get('/baz', function(){...});

和它的作品

當在刀片中的這些路線中使用URL::to時,子鏈接也起作用。

URL::to不會在電子郵件的工作,雖然

例如在一封電子郵件這樣做時:

<a href="{{URL::to('/baz')}}">bippo</a> 

結果URL是

foo.com/baz,而不是foo.com/laravel/baz

這導致我的問題,URL::to如何工作,我如何使它工作我想要的方式?例如始終將URL返回到安裝的根目錄。

+0

你可以做一個幫手,並定義你自己的'urlTo($ param)'和內部重定向與laravel url。如果有幫助,我可以寫一個例子。 – EddyTheDove

回答

2

您可以查看vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php瞭解詳情,但總之 - Laravel的URL生成器依賴於Request對象(當前Web請求),並且在電子郵件的情況下,沒有任何Web請求。

這就是爲什麼你沒有看到/laravel前綴 - 在這種情況下不可能知道它的方式。

簡單的解決方法是在配置/ app.php和前綴的網址定義「URL」與配置(「app.url」),而不是使用URL()輔助或URL門面。至少在電子郵件中(但也許在任何地方)。

總之,這不是Laravel的問題,它更多地與Web請求/ HTTP協議的性質有關。

+0

實際上我認爲laravel有一個預定義的配置,這個'env('APP_URL')' – Toskan

0

URL :: to()在下面的鏈接中是這樣工作的。 https://medium.com/@zwacky/laravels-url-to-vs-url-asset-fd427ed6f7ef#.ktwxwdjxz

https://cdn-images-1.medium.com/max/800/1 * xD1x7OeXU5NNGwfKWsvpcw.png

檢查自己。

它採用to()函數中的路由並檢查它是路由文件中的有效路由,然後爲此創建一條功能路由。 對於你問的問題,我不知道你爲什麼要這麼做?如果你闡述你想達到的目標,也許我們可以提供幫助。