如何从 Laravel 8 Jetstream 注册页面中的数据库中获取数据?
Posted
技术标签:
【中文标题】如何从 Laravel 8 Jetstream 注册页面中的数据库中获取数据?【英文标题】:How to fetch data from database in Laravel 8 Jetstream register page? 【发布时间】:2021-10-19 18:04:35 【问题描述】:所以我有一个名为 Role 的模型。我想显示一个下拉列表,其中角色从角色模型中可见。如何从注册页面中的角色模型中获取所有数据?我想在下拉选择菜单上显示它们。我的问题是如何从我的 register.blade.php 文件中的角色模型获取数据?
下面是我的 CreateNewUser.php 代码-
public function create(array $input)
dd($input);
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'business_name' => ['required', 'string', 'max:255'],
'category_id' => ['required'],
'role_id' => ['required'],
'phone' => ['required', 'string', 'regex:/(01)[0-9]9/','max:11','unique:users'],
'address' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => $this->passwordRules(),
])->validate();
return User::create([
'name' => $input['name'],
'business_name' => $input['business_name'],
'category_id' => $input['category_id'],
'role_id' => $input['role_id'],
'phone' => $input['phone'],
'address' => $input['address'],
'email' => $input['email'],
'password' => Hash::make($input['password'])
]);
【问题讨论】:
您通常如何获取模型数据?Role::all()
不起作用?你有任何错误吗?
【参考方案1】:
Jetstream 我认为将 Fortify 包用于身份验证后端逻辑。因此,如果是这种情况,您必须在 App\Providers\JetstreamServiceProvider 中拥有
public function boot()
Fortify::registerView(function ()
return view('auth.register');
);
然后在此您可以将数据传递给寄存器视图,例如:
public function boot()
Fortify::registerView(function ()
$roles = Role::all();
return view('auth.register',compact('roles'));
);
在注册视图中添加选择元素
//.....
<select name="role_id">
<option value="">Select</option>
@foreach($roles as $item)
<option value=" $item->id "> $item->name </option>
@endforeach
</select>
//.....
【讨论】:
以上是关于如何从 Laravel 8 Jetstream 注册页面中的数据库中获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Vuetify 3 添加到 Laravel 8 Jetstream + 惯性
Laravel 8.15.0/Jetstream - 如何注册新刀片 x-jet-newblade?
使用 Jetstream 在 Laravel 8 中添加新 Livewire 组件时如何解决 RootTagMissingFromViewException 错误