URL ::如何在laravel 5中工作?

时间:2017-02-07 05:00:28

标签: laravel laravel-5

我在子文件夹中安装了laravel。

e.g。

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>

生成的网址是

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

这引出了我的问题,URL::to如何运作,如何让它按照我想要的方式运作?例如始终将URL返回到安装的根目录。

2 个答案:

答案 0 :(得分:2)

您可以查看vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php以获取详细信息,但简而言之 - Laravel的URL生成器依赖于Request对象(当前Web请求),如果是电子邮件,则不会有任何Web请求。

这就是为什么你没有看到/laravel前缀 - 在这种情况下无法知道它。

简单的解决方法是在config / app.php中定义'url'并使用config('app.url')定义URL,而不是使用url()帮助器或URL facade。至少在电子邮件中(但可能在任何地方)。

总之,这不是Laravel的问题,它与Web请求/ HTTP协议的性质更相关。

答案 1 :(得分: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()函数中的路由并检查它是路由文件中的有效路由,然后为其创建一个功能路由。 对于你问的问题,我不知道你为什么要这样做呢?如果你详细说明你想要实现的目标,也许我们可以提供帮助。