2017-02-22 46 views
0

我有一种表单,用户可以在数据库列中提交和更新先前存储的数据。只是简单的输入字段,可以带字符串。每次提交表单时将值保存在同一列中

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

这是形式

{{ 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

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

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

这似乎工作。只是一个问题:如果这是首次提交表单,我怎么能不保存逗号? –

+0

你可以做一些像'$ user-> user_value = $ user-> user_value? $用户> user_value '' \输入::得到( '值');'。但是你在做更新或创建新记录吗? –

+0

冷杉条目是插入(新),在这是更新 –

2

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

+0

感谢您的建议。 +1 –

相关问题