我有一个Region模型,它与我的User模型有关系。我需要一个用户来选择他们在注册时所在的区域。我收到了一个Undefined variable $regions错误。
RegisterUserController.php
...
class RegisteredUserController extends Controller
{
/**
* Display the registration view.
*
* @return \Illuminate\View\View
*/
public function create()
{
return view('auth.register');
}
/**
* Handle an incoming registration request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Illuminate\Validation\ValidationException
*/
public function store(Request $request)
{
$request->validate([
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'company_name' => ['required', 'string', 'unique:tenants,name'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$tenant = Tenant::create([
'name' => $request->company_name,
]);
$user = User::create([
'region_id' => $request->region_id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'role' => 'admin',
'password' => Hash::make($request->password),
'tenant_id' => $tenant->id,
]);
$user->sendEmailVerificationNotification();
event(new Registered($user));
Auth::login($user);
$regions = Region::all();
return redirect(RouteServiceProvider::HOME, compact('regions'));
}
}register.blade
...<!-- Region -->
<div class="mt-4">
<select wire:model="region_id" id="region_id" name="region_id"
class="block mt-1 w-full">
<option>Choose Region</option>
@foreach($regions as $reg)
<option value="{{$reg->id}}">{{$reg->region_name}}</option>
@endforeach
</select>
</div>
...发布于 2022-04-07 08:45:25
您将希望从呈现视图的控制器操作中传递区域:
public function create()
{
return view('auth.register', [
'regions' => Region::all(),
]);
}发布于 2022-04-06 22:49:05
重定向参数用于表示路由URL中的参数
例如
// For a route with the following URI: profile/{id}
return redirect()->route('profile', ['id' => 1]);要在重定向中传递数据,可以使用with
return \Redirect::route(RouteServiceProvider::HOME)->with(['regions'=>$regions]);在刀片或控制器中,您可以使用session()->get('regions')访问数据。
...<!-- Region -->
<div class="mt-4">
<select wire:model="region_id" id="region_id" name="region_id"
class="block mt-1 w-full">
<option>Choose Region</option>
@if(session()->has('regions'))
@foreach(session()->get('regions') as $reg)
<option value="{{$reg->id}}">{{$reg->region_name}}</option>
@endforeach
@endif
</select>
</div>
...https://laravel.com/docs/9.x/redirects#redirecting-with-flashed-session-data
https://stackoverflow.com/questions/71773602
复制相似问题