【问题标题】:Retrieve old value from Laravel Form::select从 Laravel Form::select 中检索旧值
【发布时间】:2019-07-10 14:41:04
【问题描述】:

我的create view (create.blade.php) 的Laravel 项目中有以下表单字段:

{{ Form::label('format', 'Type', ['class'=>'label']) }}
{{ Form::select('format', array('is_html' => "HTML", 'is_video' => 'Video'), null, ['class' => 'form-control format']) }}

我在我的数据库中的format 列中检索此数据,以便我可以在我的项目中使用此数据。

现在,在edit (edit.blade.php) 视图中,我想要反映已选择的数据。所以当用户选择“视频”时,选择选项已经设置为Video

【问题讨论】:

  • 您的问题不清楚,您是想显示表单中发布的值,还是使用数据库中的值?

标签: php laravel forms laravel-5


【解决方案1】:

当我输入这个问题时,我想通了。已经输入了整个问题,所以不妨将其发布以帮助某人。

third argument 需要与我从数据库中检索到的数据相对应。因此,例如,如果我想选择 Video,它看起来像这样:

{{ Form::label('format', 'Type', ['class'=>'label']) }}
{{ Form::select('format', array('is_html' => "HTML", 'is_video' => 'Video'), 'is_video', ['class' => 'form-control format']) }}

我用包含来自我的database 的数据的变量替换了is_video,它按预期工作。

{{ Form::label('format', 'Type', ['class'=>'label']) }}
{{ Form::select('format', array('is_html' => "HTML", 'is_video' => 'Video'), $var->format, ['class' => 'form-control format']) }}

【讨论】:

  • “我用变量替换了 is_video” - 如果您发布该变量可能对其他人更有用(我假设类似于 old('is_video')?)现在,它指向硬编码一个值作为检查的方式,这并不完全正确。
  • 我清楚地解释了发生了什么,对吧?由于var 从未出现在我的问题的其他任何地方,因此如果突然出现var 可能会让其他人感到困惑。所以我清楚地解释了如何实现它,然后我用我的var 替换硬编码的值以获得所需的结果。
  • 别误会,你解释得很好,但仍然存在$var->format 包含什么以及它如何处理表单提交的问题。 $var->format 包含 old('is_video', '') (或类似的东西)的结果我对吗?还是别的什么?
  • 当初始表单被提交时,它会将相应的数据发送到format 列。因此,如果选择了一个视频,它会将字符串is_video 发送到数据库,该数据库存储在format 列中,该列用于Class 的实例。我使用的Classchapter,所以在这种情况下var 将是$chapter->format
  • 啊,好吧,所以只有 2 个选项,而且您并不真正担心 old()(在提交表单并在验证失败后重定向等时出现),您只是担心已经存在的价值。我现在知道了。通常,您可以通过old('format', $record->format) 执行此操作,这会将选定的option 设置为数据库记录中的内容,或者在无效重定向的情况下选择的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多