如何在控制器中获取用户角色数据并显示 laravel

Posted

技术标签:

【中文标题】如何在控制器中获取用户角色数据并显示 laravel【英文标题】:How to I get user role data in controller and displaying laravel 【发布时间】:2019-01-25 06:52:00 【问题描述】:

如何在视图页面中通过下拉显示?

用户模型:

public function registrationRoles()
    return [
       3=>'Teacher',
       4=>'Student'
    ];

我的查看页面

<select class="select" name="role_id" id="all-categories">
    <option value="">Select One</option>
    <option value="">Teacher</option>
    <option value="">Student</option>
</select>

注册控制器

public function postRegister(Request $request)
    
        $this->validate($request, [
            'first_name'    => 'required',
            'last_name'     => 'required',
            'email'         => 'required|email|unique:users',
            'phone'         => 'required|numeric',
            'password'      => 'required|min:6|confirmed'
        ]);

    $data = new User;
    $data->first_name    = $request->first_name;
    $data->last_name     = $request->last_name;
    $data->email         = $request->email;
    $data->phone         = $request->phone;
    $data->password      = bcrypt($request->password);
    // $data->role_id       = 0;
    $data->save();

    Session::flash('success', 'Waiting for admin approval');
    return redirect('/register');

.................................................. ..................................................... ..................................................... ......

【问题讨论】:

【参考方案1】:

您可以从在 html 中硬编码它们开始

<select class="select" name="role_id" id="all-categories">
    <option value="">Select One</option>
    <option value="0">Teacher</option>
    <option value="1">Student</option>
</select>

在你的控制器中

public function postRegister(Request $request)
    
        $this->validate($request, [
            'first_name'    => 'required',
            'last_name'     => 'required',
            'email'         => 'required|email|unique:users',
            'phone'         => 'required|numeric',
            'password'      => 'required|min:6|confirmed'
        ]);

    $data = new User;
    $data->first_name    = $request->first_name;
    $data->last_name     = $request->last_name;
    $data->email         = $request->email;
    $data->phone         = $request->phone;
    $data->password      = bcrypt($request->password);
    $data->role_id       = $request->role_id;
    $data->save();

    Session::flash('success', 'Waiting for admin approval');
    return redirect('/register');

或者,如果您在视图中返回角色,您可以使用角色填充下拉列表 喜欢

$roles = Roles::all();
return view('yourView', compact('roles));

在你的刀片中

<select class="select" name="role_id" id="all-categories">
    @foreach($roles as $role)
        <option value=" $role->id "> $role->name </option>
    @endforeach
</select>

【讨论】:

【参考方案2】:

如果你使用刀片:-

你可以在这里找到必要的阅读资料https://laravel.com/docs/4.2/html#drop-down-lists

!! Form::select('role_id', <here you have to place returned value from registrationRoles>) !!

【讨论】:

laravel 4.2 多年不支持,html/form builder 甚至不再是 laravel 的一部分,OP 至少使用 5.0

以上是关于如何在控制器中获取用户角色数据并显示 laravel的主要内容,如果未能解决你的问题,请参考以下文章

如何根据用户在 Laravel 5 中的角色选择用户?

Laravel 5 new auth:获取当前用户以及如何实现角色?

如何使用 Spring Security 获取当前用户的角色

如何在雪花中获取用户角色层次结构?

如何在jsp中使用查询获取用户角色?

Java和数据库结合的大作业,请问如何在Java实现多个用户角色登陆后跳出显示不同内容的面板,比如A跳入的