Laravel - 如何将参数传递给路由控制器中的函数?

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

我正在使用 Laravel Fortify 来注册我的用户。 我有多种用户。

下面是访问注册控制器的代码:

 Route::post(
      RoutePath::for('register', '/register'),
      [RegisteredUserController::class, 'store']
 )->middleware(['auth.already:'.config('fortify.guard')]);

现在,如果我们检查控制器,这就是我们所拥有的:

public function store(Request $request, CreatesNewUsers $creator): RegisterResponse
{
    if (config('fortify.lowercase_usernames')) {
        $request->merge([
            Fortify::username() => Str::lower($request->{Fortify::username()}),
        ]);
    }

    event(new Registered($user = $creator->create($request->all())));

    $this->guard->login($user);

    return app(RegisterResponse::class);
}

我想了解如何更改

$creator
参数的值才能通过我自己的课程。

我无法在 Laravel / Laravel Fortify 文档中找到任何帮助。

php laravel authentication registration laravel-fortify
1个回答
0
投票
  • 创建您自己的类来实现“CreatesNewUsers”接口。我们称之为“YourCustomCreateUser”
namespace App\Services;
use Laravel\Fortify\Contracts\CreatesNewUsers;

class YourCustomCreateUser implements CreatesNewUsers
{
    public function create(array $input)
    {
        // Your custom logic for creating a new user
    }
}
  • 将您的类绑定到“AppServiceProvider”或任何服务提供商中的“CreatesNewUsers”接口。
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\YourCustomCreateUser;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->bind(CreatesNewUsers::class, YourCustomCreateUser::class);
    }
}
  • 确保根据应用程序的结构调整命名空间和类名称。
© www.soinside.com 2019 - 2024. All rights reserved.