目标 [Laravel\Fortify\Contracts\RegisterViewResponse] 不可实例化

问题描述 投票:0回答:7

我有一个路由器注册器,但我发现错误

目标 [Laravel\Fortify\Contracts\RegisterViewResponse] 不可实例化。

php laravel fortify
7个回答
56
投票

您需要在

config/app.php
文件中注册强化服务提供商

添加这个

App\Providers\FortifyServiceProvider::class,

至应用程序服务提供商下的

config/app.php

更新: 将身份验证视图的位置指向 Fortify 也很重要。

注册视图的一个示例是:


//  auth.register => means your register.blade is located in `view/auth/`
//  folder. (All things being equal)

Fortify::registerView(function () {
    return view('auth.register');
});

了解更多:https://laravel.com/docs/9.x/fortify#registration


8
投票

您必须在 FortifyServiceProvider.phpboot 方法中添加所有这些。 然后导入所有需要的类

Fortify::loginView(function(){
            return view('auth.login');
        });

        Fortify::authenticateUsing(function(Request $request){
            $user = User::where('email',$request->email)->first();
            if($user && Hash::check($request->password,$user->password)){
                return $user;
            }
        });
         Fortify::registerView(function(){
            return view('auth.register');
        });

之后您需要创建 registerlogin 视图


5
投票

验证以下提供程序是否已在

config.app
部分的
providers
文件中注册

App\Providers\FortifyServiceProvider::class,
App\Providers\JetstreamServiceProvider::class, // If using Jetstream

取消注释

App\Providers\FortifyServiceProvider.php
文件中的以下行

Fortify::createUsersUsing(CreateNewUser::class);

2
投票

在 app/providers/FortifyServiceProvider.php 上创建 registerView 函数

    Fortify::registerView(function () {
        return view('auth.register');
    });

2
投票

除了Joseph Ajibodu的答案之外,在

FortifyServiceProvider
的启动方法中添加以下内容:

    Fortify::loginView(function () {
        return view('auth.login');
    });

    Fortify::registerView(function () {
        return view('auth.register');
    });

    Fortify::requestPasswordResetLinkView(function () {
        return view('auth.forgot-password');
    });

    Fortify::resetPasswordView(function () {
        return view('auth.reset-password');
    });

0
投票

Fortify::registerView(function () { 返回视图('auth.register');

将此代码放入您的 45 个服务提供商文件夹中的 book 方法下


0
投票

说明: 照亮\合同\容器\BindingResolutionException 目标 [Laravel\Fortify\Contracts\LoginViewResponse] 不可实例化。

重现步骤: Manjaro Linux 20.2.1

1.新建一个Laravel项目

2.cd到项目中,然后composer require laravel/fortify

3.php artisan 供应商:发布 --provider="Laravel\Fortify\FortifyServiceProvider"

4.添加 App\Providers\FortifyServiceProvider::class 到配置 pp.php

5.php 工匠迁移

6.在resources iews中创建一个auth文件夹,然后在文件夹中添加一个login.blade.php

7.在routes\web.php中,在欢迎页面的路由中添加中间件('auth')

8.php 工匠服务

您需要添加

Fortify::loginView(fn () => view('auth.login')); 到FortifyServiceProvider的启动方法。

请参阅有关身份验证的文档

© www.soinside.com 2019 - 2024. All rights reserved.