Laravel - 保留Form Post的价值

时间:2014-03-07 18:41:01

标签: php html laravel

我目前有一个下拉框,用于过滤我视图中的数据。在表单发布之后,我想保留帖子中选定的“publication_id”,以便在需要时可以用于其他过滤。

这是我目前的代码

<select name="publication_id" id="publication_id" class="form-control input-sm" >
@foreach($publications as $publication)
<option value="{{ $publication->id }}" <?php if(isset($_GET['publication_id']) == '{{ $publication->id }}') echo 'selected'; ?>>{{ $publication->name }}</option>
@endforeach
</select>

问题是post之后的选定值始终默认为foreach循环中的最后一个选项。我怎样才能使其正常工作?

2 个答案:

答案 0 :(得分:3)

您可以尝试生成select,旧的所选项目将保留(Input::old()

{{ Form::select('publication_id', $publications, Input::old('publication_id')) }}

查看Laravel Documentation了解详情。

答案 1 :(得分:1)

if语句中的isset()将返回true或false而不是$_GET['publication_id']。这与$ publication-&gt; id进行比较,而不是$_GET['publication_id']。你可以简单地使用:

<?php if($_GET['publication_id'] == '{{ $publication->id }}') echo ' selected="selected" '; ?>

在你的代码中,如果isset()返回true,则匹配每个$ publication-&gt; id!= 0,因此所有选项都可能设置了所选属性。