关于脚手架 Jetstream 中使用 Fortify 代码中一处使用容器返回值的疑问

想对 Jetstream 脚手架中的账户删除增加邮件确认

于是开始梳理 Jetstream 的处理逻辑,由于 Jetstream 使用的是 Fortify 处理登录注册等。

于是顺着代码查看,对一处代码不是很理解

public function create(Request $request): RequestPasswordResetLinkViewResponse
    {
        //#view: "auth.forgot-password"
        return app(RequestPasswordResetLinkViewResponse::class);
    }

对于app容器调用 RequestPasswordResetLinkViewResponse::class 类

RequestPasswordResetLinkViewResponse::class 类中是空的,为什么会返回以下这个视图名呢,

#view: "auth.forgot-password"

app() 应该返回一个容器实例,这点比较不理解

希望给予解答

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

容器注入相关代码在 Laravel\Fortify\Fortify 类的 199 行处:

public static function requestPasswordResetLinkView($view)
{
    app()->singleton(RequestPasswordResetLinkViewResponse::class, function () use ($view) {
        return new SimpleViewResponse($view);
    });
}

调用注入的地方在同一个类的 109 行处:

static::requestPasswordResetLinkView($prefix.'forgot-password');

至于你说的 RequestPasswordResetLinkViewResponse 类是空的问题,因为这只是一个 interface

10个月前 评论
讨论数量: 2

大佬们是都在周末休息吗

有人解答一下吗

10个月前 评论
nff93

容器注入相关代码在 Laravel\Fortify\Fortify 类的 199 行处:

public static function requestPasswordResetLinkView($view)
{
    app()->singleton(RequestPasswordResetLinkViewResponse::class, function () use ($view) {
        return new SimpleViewResponse($view);
    });
}

调用注入的地方在同一个类的 109 行处:

static::requestPasswordResetLinkView($prefix.'forgot-password');

至于你说的 RequestPasswordResetLinkViewResponse 类是空的问题,因为这只是一个 interface

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!