route ('password.reset', $this->token, false) 助手函数 route 的 false 参数是做什么的 ?
1

app/Notifications/ResetPassword.php

     public function toMail($notifiable)
     {
         return (new MailMessage)
             ->subject('重置密码')
             ->line('这是一封密码重置邮件,如果是您本人操作,请点击以下按钮继续:')
             ->action('重置密码', url(route('password.reset', $this->token, false)))
             ->line('如果您并没有执行此操作,您可以选择忽略此邮件。');
     } 

这里面的 route('password.reset', $this->token, false) , 本书中第一回出现生成相对路径的情况(默认为true,生成绝对路径). 不知道这里为什么要生成相对路径, 生成绝对不可以吗? 是不是因为 mail 的缘故, 如下,mail 类的 action 方法里也没见到有说要相对链接什么的


   /**
     * Configure the "call to action" button.
     *
     * @param  string  $text
     * @param  string  $url
     * @return $this
     */
    public function action($text, $url)
    {
        $this->actionText = $text;
        $this->actionUrl = $url;

        return $this;
    }
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

你可以试一下 action 方法第二个参数到底能不能使用 相对路径,但 route() 方法可以生成

route('password.reset', 11, true) => "http://larabbs.test/password/reset/11"

不需要再在外面使用 url()

2个月前

route 函数为给定命名路由生成一个URL:

$url = route('routeName');

如果该路由接收参数,你可以将其作为第二个参数传递进来:

$url = route('routeName', ['id' => 1]);

默认情况下,route 函数生成的是绝对 URL,如果你想要生成一个相对 URL,可以传递 false 作为第三个参数:

$url = route('routeName', ['id' => 1], false);
1个月前

的确route('password.reset', $this->token)就已经可以生成正确的url了,不太明白这里为什么要这样写?

框架原生的写法是:
url(config('app.url').route('password.reset', $this->token, false)),不仅增加了一个url,还有一个config('app.url'),假设config('app.url')的值和域名不一样的话,激活邮件中的链接还会出错。而且当推送到线上https环境时,由于线上和本地的.env文件中的app_url并不一致,因此生成的激活链接也是有问题,无法打开的。

我能想到的唯一理由是,url这个方法实际上是Illuminate\Routing\UrlGenerator::to这个方法,此方法在最开始会先检测route方法生成的url是否为有效url,多了一重保障。
file

1个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!