在 Laravel Jetstream 注册中添加填充的选择下拉列表
Posted
技术标签:
【中文标题】在 Laravel Jetstream 注册中添加填充的选择下拉列表【英文标题】:Adding a populated select dropdown in Laravel Jetstream Registration 【发布时间】:2021-09-15 21:22:43 【问题描述】:我是 Laravel 的新手,我正在尝试使用 Jetstream(Livewire) 进行身份验证。我已经成功创建了一个注册表单。但是,我希望根据数据库中的数据将输入字段更改为选择下拉字段。这是SO 中的同一个问题,但给出的答案是手动的。我在想这可能是one,但它可能与已经使用的 return 语句冲突(如果我错了,请纠正我)。
目前我的 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>
...
【问题讨论】:
【参考方案1】:CreateNewUser
只是 Fortify 消耗的一个动作。当您POST
数据时,它将执行验证并创建用户。
要自定义注册视图,您需要在
中指定App\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
【讨论】:
以上是关于在 Laravel Jetstream 注册中添加填充的选择下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色
如何从 Laravel 8 Jetstream 注册页面中的数据库中获取数据?
Laravel 8.15.0/Jetstream - 如何注册新刀片 x-jet-newblade?
使用 Jetstream 在 Laravel 8 中添加新 Livewire 组件时如何解决 RootTagMissingFromViewException 错误