关于脚手架 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() 应该返回一个容器实例,这点比较不理解

希望给予解答

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
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

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

大佬们是都在周末休息吗

有人解答一下吗

11个月前 评论
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

11个月前 评论

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