如何从 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 错误

Laravel 8 Jetstream如何在重置密码后将用户重定向到自定义路由

Laravel 8 JetStream 引导程序 4

Laravel 8 Jetstream:无法使用使用工厂和播种机播种的帐户登录