首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Laratrust 5.2限制选择框中的某些选项。*

如何使用Laratrust 5.2限制选择框中的某些选项。*
EN

Stack Overflow用户
提问于 2020-10-22 04:47:56
回答 1查看 46关注 0票数 0

对于不是管理员的用户,有没有办法隐藏下拉选择框中的一些选项?

我的控制器

代码语言:javascript
复制
public function edit($id)
    {
        $user = User::with('roles')->findOrFail($id);
        $roles = Role::all();
        return view('profiles.edit', compact('roles', 'user'));  
    }

edit.blade.php

代码语言:javascript
复制
 @if(Auth::user()->hasRole(['superadministrator', 'administrator']))
                    <div class="row my-2">
                            <div class="col-md-2 font-weight-bold pt-2">Role:</div>
                            <div class="col-md-10">
                                <div class="form-group">
                                    <select id="role" name="role" class="form-control @error('role') is-invalid @enderror" value="{{ old('role') }}">
                                        <option value="">Choose user role...</option>
                                            @foreach($roles as $role)
                                                <option value="$role->display_name" {{ $user->hasRole($role->name) ? 'selected' : '' }}>{{ $role->display_name }}</option>
                                            @endforeach
                                    </select>
                                    @error('role')
                                        <span class="invalid-feedback" role="alert">
                                            <strong>{{ $message }}</strong>
                                        </span>
                                    @enderror
                                </div>
                            </div>
                        </div>
                        @endif

我所做的是,如果用户是管理员,他只能在下拉列表中看到某些选项,如果他是超级管理员,则所有选项都可用……有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 05:10:09

您应该有一个只能由管理员显示的项目数组。您可以使用该列表来隐藏这些项目。

代码语言:javascript
复制
@foreach($roles as $role)
   @if(!in_array($role->display_name, $adminOptionsLists) ||
       (in_array($role->display_name, $adminOptionsLists) &&
        Auth::user()->isAdmin()) // make your own admin check condition.
   )
    <option 
       value="$role->display_name" {{ $user->hasRole($role->name) ? 'selected' : '' }}
    >
      {{ $role->display_name }}
    </option>
   @endif
@endforeach
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64471521

复制
相关文章

相似问题

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