在多个选择上使用Input :: old

时间:2016-03-30 04:25:21

标签: php arrays laravel multiple-select

你好,我在这里遇到一些问题..

// in controller
$select = \MyTable::select('id','name')->where('myWhere',valWhere)->get();
return this->data['select'];

// in view
<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
   <option value="{{ $val->id }}">{{ $val->name }}</option>
</select>

因为我使用多个select插件,输入name =“inselect”将包含所选的id。所以选择后“选择”会像这样包含:

<input type="hidden" name="inselect" value="2,4,5"> // string value

我想用Input :: old('inselect')返回这个“2,4,5”。怎么弄明白?

2 个答案:

答案 0 :(得分:1)

试试这段代码。

<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
   <option value="{{ $val->id }}" @if (in_array($val->id, Input::old('sel'))) selected @endif >{{ $val->name }}</option>
</select>

答案 1 :(得分:0)

或更短:

{{in_array($val->id, old("sel") ?: []) ? "selected": ""}}