Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel URL生成器放置“;“本地主机”;拉威尔的前域_Laravel_Url_Environment Variables_Laragon - Fatal编程技术网

Laravel URL生成器放置“;“本地主机”;拉威尔的前域

Laravel URL生成器放置“;“本地主机”;拉威尔的前域,laravel,url,environment-variables,laragon,Laravel,Url,Environment Variables,Laragon,我一直在尝试向用户发送电子邮件,使用Laravel中的验证链接。它似乎可以正常工作,但当使用URL facade构建链接时,链接出现错误 public function toMail($notifiable) { $url = URL::signedRoute('confirm', ['user' => $this->user->id]); return (new MailMessage) ->subject('Activ

我一直在尝试向用户发送电子邮件,使用Laravel中的验证链接。它似乎可以正常工作,但当使用URL facade构建链接时,链接出现错误

public function toMail($notifiable)
{
    $url = URL::signedRoute('confirm', ['user' => $this->user->id]);

    return (new MailMessage)
                ->subject('Activate your email address')
                ->line('In order to use the application, please verify your email address.')
                ->action('Activate your account', $url)
                ->line('Thank you for using our application!');
}
在电子邮件中,链接如下所示:


http://localhost/mydomain.com/confirm/14?signature=3ba4d86827717440f70a3b2f60c913b6e84d550cb9fce8de04a8ba359833ac7c

“localhost”部分不应该存在。但是,如果我在URL栏中手动删除它,我相信签名的URL是我操纵URL的东西,并给我一个401错误。我在本地主机环境中运行,但我使用了Laragon的自动虚拟主机,因此我仍然可以在域中运行它

有什么建议吗?

更改:

APP_URL=example.com

致:

应用程序URL=

我猜不指定“http://”会使它将localhost追加到前端。希望这对别人有帮助

变化:

APP_URL=example.com

致:

应用程序URL=


我猜不指定“http://”会使它将localhost追加到前端。希望这对别人有帮助

有时,如果您在虚拟环境或docker容器中工作,仅设置
APP\u URL
将不起作用。尝试以下步骤

步骤1:在
.env
文件中设置域。(不要忘记双引号)

步骤2:在生成签名路由之前添加以下行

URL::forceRootUrl(\config('app.url'));
步骤3:(可选)如果要强制执行
https
方案,请添加以下行

URL::forceScheme('https');

有时,如果您在虚拟环境或docker容器中工作,仅设置
APP\u URL
将不起作用。尝试以下步骤

步骤1:在
.env
文件中设置域。(不要忘记双引号)

步骤2:在生成签名路由之前添加以下行

URL::forceRootUrl(\config('app.url'));
步骤3:(可选)如果要强制执行
https
方案,请添加以下行

URL::forceScheme('https');

要100%确定,请将环境值保留在双引号中:
APP\u URL=”http://example.com“
要100%确定,请将环境值保留在双引号中:
APP\u URL=”http://example.com“