我观看了几个关于Laravel/JetStream注册系统的注册形式定制的视频并阅读了一些相关教程。我发现的都是这样的:
//resources/views/auth/register.blade.php
<div class="mt-4">
<x-label for="gender" value="{{ __('Gender') }}" />
<x-dropdown id="gender" class="block mt-1 w-full" name="gender" :value="old('gender')" required>
<x-slot name="content">
<option value="0">Select Gender</option>
<option value="1">Female</option>
<option value="2">Male</option>
</x-slot>
</x-dropdown>
</div>
但是我想从数据库表中填充性别下拉列表,例如“性别”。
为此,我创建了一个性别模型。
我需要做的就是添加以下行
//this line will be in a file but which one?
$genders = Genders::all();
然后我将能够在视图中列出项目,如下所示:
<div class="mt-4">
<x-label for="gender" value="{{ __('Gender') }}" />
<x-dropdown id="gender" class="block mt-1 w-full" name="gender" :value="old('gender')" required>
<x-slot name="content">
<option value="0">Select Gender</option>
@foreach ($genders as $gender)
<option value="{{$gender->id}}">{{$gender->name}}</option>
@endforeach
</x-slot>
</x-dropdown>
</div>
我已将以下代码添加到 app/Providers/FortifyServiceProvider.php 中
<?php
namespace App\Providers;
use App\Actions\Fortify\CreateNewUser;
use App\Actions\Fortify\ResetUserPassword;
use App\Actions\Fortify\UpdateUserPassword;
use App\Actions\Fortify\UpdateUserProfileInformation;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
use Laravel\Fortify\Fortify;
use App\Models\Gender;
class FortifyServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//I have added this but no change ):
Fortify::registerView(function () {
$genders = Gender::all();
return view('auth.register', ['genders' => $genders]);
});
}
我找不到应该在哪里放置代码
$genders = Genders::all();
并通过$genders
查看register.blade.php
?这对于一些选项来说可能很简单,但是如果我想列出国家/地区,该怎么办?
我从来不知道这这么容易:
我已添加
//
Fortify::registerView(function () {
$genders = Gender::all();
return view('auth.register', ['genders' => $genders]);
});
进入
boot()
中的
app/Providers/AuthServiceProvider.php
功能
<?php
namespace App\Providers;
// use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Laravel\Fortify\Fortify;
use App\Models\Gender;
class AuthServiceProvider extends ServiceProvider
{
/**
* The model to policy mappings for the application.
*
* @var array<class-string, class-string>
*/
protected $policies = [
//
];
/**
* Register any authentication / authorization services.
*/
public function boot(): void
{
//
Fortify::registerView(function () {
$genders = Gender::all();
return view('auth.register', ['genders' => $genders]);
});
}
}
现在我可以看到一个动态填充的下拉列表。