Laravel表单选择当前选择具有不同

时间:2015-04-28 07:42:42

标签: forms laravel select model eloquent

我正在使用distinct和list来检索已经插入的值列表。

$listColor = $group->where('map_polygon_color', '!=', '')->distinct('map_polygon_color')->lists('map_polygon_color');

为我生成一个坚实的颜色列表。

现在我获取(如果有选定的颜色)颜色:

$selectedColor = array_search($group->map_polygon_color, $listColor);

好的,我得到了一个包含颜色和当前所选列表的列表。现在我把它发送到一个模型绑定的形式:

{!! Form::select('map_polygon_color', $listColor, $selectedColor, ['class' => 'form-control']) !!}

现在的问题是:是否有(simpel)方法直接在模板中执行此操作?我的selectedColor需要颜色列表数组来检索所选的键。

//编辑颜色数组:

array:5 [▼
  0 => "rgb(75, 0, 130)"
  1 => "rgb(50, 205, 50)"
  2 => "rgb(30, 144, 255)"
  3 => "rgb(255, 140, 0)"
  4 => "rgb(255, 0, 0)"
]

1 个答案:

答案 0 :(得分:1)

我不确定这是否有效,但您可以像这样制作$listColor数组:

[
    'rgb(75, 0, 130)' => 'rgb(75, 0, 130)',
    'rgb(50, 205, 50)' => 'rgb(50, 205, 50)'
    // etc
]

map_polygon_color中使用lists两次:

$listColor = $group->where('map_polygon_color', '!=', '')
                   ->distinct('map_polygon_color')
                   ->lists('map_polygon_color', 'map_polygon_color');

然后你至少不必做array_search如果我正确理解你的结构,那么模型绑定应该注意设置正确的值:

{!! Form::select('map_polygon_color', $listColor, null, ['class' => 'form-control']) !!}