每次提交表单时都将值保存在同一列中

时间:2017-02-22 10:43:25

标签: php laravel laravel-4

我有一个表单,用户可以在数据库列中提交和更新以前存储的数据。只是简单的输入字段,可以采取字符串。

我想说的是,如果用户在一天或一小时后回来并在表单上提交新值以将其保存在以前一个逗号分隔的列中。

这是表格

{{ Form::open() }}
           {{ Form::text('value', '', ['class' => 'form-control', 'id' => 'value', 'autocomplete' => 'off']) }}
           <button type="submit" class="btn btn-primary">Submit</button>
{{ Form::close() }}

我尝试在我的控制器中使用implode()来执行此操作,但不是添加第二个提交,而是删除上一个并插入新的。

$value=implode(",",(array)Input::get('value'));
$user->user_value = $value;
$user->save();

看起来很简单,但我无法弄明白。任何人都可以帮助我吗?

注意:用户当时可以提交一个值。

2 个答案:

答案 0 :(得分:2)

一种解决方案是从数据库中检索当前值,将新值(来自表单)与当前字符串合并,然后保存合并后的值。

答案 1 :(得分:2)

每次提交表单时都会覆盖该值。您应该在保存之前将旧值连接到新值。像这样:

if (empty($user->user_value))
    $user->user_value = \Input::get('value');
else
    $user->user_value = $user->user_value . ',' . \Input::get('value');
$user->save();