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

Rik*_*wan 4 php laravel fortify

我有一个路由器寄存器,但我发现错误

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

Jos*_*odu 15

您需要在config/app.php文件中注册 fortify 服务提供商

添加这个

App\Providers\FortifyServiceProvider::class,
Run Code Online (Sandbox Code Playgroud)

config/app.php应用程序的服务提供商下。

  • @realtebo,你必须让 fortify 知道你的身份验证文件的位置。https://laravel.com/docs/8.x/fortify#registration (2认同)
  • 对于基于 json api 的后端,有没有办法跳过 `registerView()` ?我只想拥有 fortify api,但不想实现前端视图。 (2认同)
  • @NicoHood 是的,你可以。转到“fortify.php”配置并将 view 设置为 false。`'views' => false,` 并确保为您的路由使用 `api.php` 路由文件。 (2认同)

小智 5

验证以下提供程序是否已在部分config.app的文件中注册providers

App\Providers\FortifyServiceProvider::class,
App\Providers\JetstreamServiceProvider::class, // If using Jetstream
Run Code Online (Sandbox Code Playgroud)

App\Providers\FortifyServiceProvider.php取消文件中以下行的注释

Fortify::createUsersUsing(CreateNewUser::class);
Run Code Online (Sandbox Code Playgroud)


Mha*_*ouy 5

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

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');
        });
Run Code Online (Sandbox Code Playgroud)

之后,您需要创建注册登录视图