【问题标题】:Dynamic Dropdown showing duplicate value Laravel 5.2显示重复值 Laravel 5.2 的动态下拉列表
【发布时间】:2018-05-15 16:36:32
【问题描述】:

尝试将登录用户设置为下拉选择值,但是当我检查下拉值列表时,它会显示重复值,例如 Admin。我正在从存储在数据库中的用户表生成下拉值...。请帮助解决此问题。

这是用户的下拉菜单,管理员被选为当前用户。

用户控制器:

 $users = User::all();
 $current_user = Auth::user()->name; 

Laravel Blade 中的动态下拉菜单..

<select name="recieved_by" class="form-control">
  <option value="{{ $current_user }}" selected>{{ $current_user }}</option>
  @foreach($users as $user)
     <option value="{{$user->name}}">{{ $user->name }}</option>
  @endforeach
</select>

【问题讨论】:

  • 检查我的答案,让我知道它是否有效。

标签: php dynamic controller laravel-5.2 laravel-blade


【解决方案1】:

在查询中使用 groupBy 删除重复项。

同时从查询中删除当前用户,这样它就不会在您的选择下拉列表中重复,如下所示:

$current_user = Auth::user()->name; 
$users = User::where('name','!=',$current_user)->groupBy('name')->get();

【讨论】:

    【解决方案2】:
        $users = array(); //declare an array
    
        @foreach($users as $user)
            $users['name'] = $user->name;
        @endforeach
        $users = array_unique($users);
    

    在使用 foreach() 循环之前

    希望这会对你有所帮助。

    请检查语法,因为我不是 laravel 开发人员

    谢谢,

    【讨论】:

    • 它给了我这个错误 array_unique() 期望参数 1 是数组,给定对象
    • $users 是你的数组还是对象?
    • $users 是一个对象数组...每个对象都包含用户的数据
    【解决方案3】:
    <select name="recieved_by" class="form-control">
    
           @foreach($users as $user)
               @if($current_user==$user->name)
                  <option value="{{ $current_user }}" selected>{{ $current_user }}</option>
               @endif
               <option value="{{$user->name}}">{{ $user->name }}</option>
           @endforeach
    
    </select>
    

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 1970-01-01
      • 2020-03-11
      • 2016-07-10
      • 2016-02-19
      • 2020-04-13
      • 2012-08-12
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多