首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 9用户注册中的查询关系

Laravel 9用户注册中的查询关系
EN

Stack Overflow用户
提问于 2022-04-06 21:05:13
回答 2查看 184关注 0票数 0

我有一个Region模型,它与我的User模型有关系。我需要一个用户来选择他们在注册时所在的区域。我收到了一个Undefined variable $regions错误。

RegisterUserController.php

代码语言:javascript
复制
...
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

代码语言:javascript
复制
...<!-- 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>
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-07 08:45:25

您将希望从呈现视图的控制器操作中传递区域:

代码语言:javascript
复制
    public function create()
    {
        return view('auth.register', [
            'regions' => Region::all(),
        ]);
    }
票数 1
EN

Stack Overflow用户

发布于 2022-04-06 22:49:05

重定向参数用于表示路由URL中的参数

例如

代码语言:javascript
复制
// For a route with the following URI: profile/{id}
 
return redirect()->route('profile', ['id' => 1]);

要在重定向中传递数据,可以使用with

代码语言:javascript
复制
return \Redirect::route(RouteServiceProvider::HOME)->with(['regions'=>$regions]);

在刀片或控制器中,您可以使用session()->get('regions')访问数据。

代码语言:javascript
复制
...<!-- 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71773602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档