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