【问题标题】:Laravel CRUD: how to update input field to null?Laravel CRUD:如何将输入字段更新为空?
【发布时间】:2018-03-29 16:41:41
【问题描述】:

这是来自 CRUD“编辑”页面的输入字段。在页面加载时,它会填充数据库中的一些值。

<input type="text" name="lives" value="{{ old('lives', $card->lives) }}">

当我清除此输入字段(删除旧或检索的字符串)并提交表单时,$request-&gt;('lives') 中仍有旧数据!

我已经有了一个解决方案:如果我从输入字段中删除旧值并输入一个空格 - 它可以工作,并且 $request-&gt;('lives') 包含 null(感谢 TrimStringsConvertEmptyStringsToNull 中间件)。

但我希望它在我清空输入字段并提交表单时正常工作。

有什么建议吗?谢谢。

附: &lt;textarea&gt; 字段没有问题,因为它们没有属性'value',标签之间粘贴旧数据。

<textarea>{{ old('data', $card->data) }}</textarea>

【问题讨论】:

  • 当你提交一些“生命”被清除的东西时,你能转储服务器收到的请求吗?
  • 更新方法是什么样的?

标签: forms laravel input laravel-5.6


【解决方案1】:

只需在控制器操作方法中添加一个条件

$data = $request->all();

$data['lives'] = 
    (isset($data['lives']) && !empty($data['lives'])) ? $data['lives'] : NULL;

【讨论】:

  • 更短(更优雅)的版本是:$data['lives'] = $request-&gt;filled('lives') ? $request-&gt;get('lives') : null;,但解决方案不应该是必须手动为每个输入执行此操作 - 其他地方一定有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多