Добавление заполненного раскрывающегося списка выбора в Laravel Jetstream Registration

Я новичок в Laravel, и я пытаюсь использовать Jetstream (Livewire) для аутентификации. Мне уже удалось создать регистрационную форму. Однако я хочу изменить поле ввода на раскрывающееся поле выбора на основе данных из базы данных. Это тот же вопрос в SO, но ответ был ручным. Я подумал, может быть, этот один, но он может конфликтовать с уже использованным оператором возврата (поправьте меня, если я ошибаюсь).

В настоящее время моя функция Fortify / CreateNewUser:

public function create(array $input)
{
    Validator::make($input, [
        'name' => ['required', 'string', 'max:255'],
        'user_name' => ['required', 'string', 'max:125'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => $this->passwordRules(),
        'user_role' => ['required', 'max:20'],
        'user_type' => ['required', 'max:20'],
        'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['required', 'accepted'] : '',
    ])->validate();

    return User::create([
        'name' => $input['name'],
        'user_name' => $input['user_name'],
        'email' => $input['email'],
        'password' => Hash::make($input['password']),
        'user_role' => $input['user_role'],
        'user_type' => $input['user_type'],
    ]);
}

Register.blade.php:

...
        <div class="mt-4">
            <x-jet-label for="user_role" value="{{ __('Role') }}" />
            <x-jet-input id="user_role" class="block mt-1 w-full" type="text" name="user_role" required autocomplete="user_role" />
        </div>

        <div class="mt-4">
            <x-jet-label for="user_type" value="{{ __('Type') }}" />
            <x-jet-input id="user_type" class="block mt-1 w-full" type="text" name="user_type" required autocomplete="user_type" />
        </div>
...

person rod james    schedule 05.07.2021    source источник


Ответы (1)


CreateNewUser - это только действие, потребляемое Fortify. Он выполнит проверку и создаст пользователя, когда вы POST данные.

Для настройки вида регистрации вам необходимо указать в

Приложение \ Providers \ FortifyServiceProvider

use Laravel\Fortify\Fortify;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Fortify::registerView(function () {
        $myOptions = MyModel::all();
        return view('auth.register', ['myOptions' => $myOptions]);
    });

    // ...
}

https://laravel.com/docs/8.x/fortify#registration

person Clément Baconnier    schedule 05.07.2021