【问题标题】:Saving values in same column every time form is submitted每次提交表单时将值保存在同一列中
【发布时间】:2017-02-22 10:43:24
【问题描述】:

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

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

这是表格

{{ 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();

这似乎很简单,但我无法弄清楚。谁能帮帮我?

注意:用户一次只能提交一个值。

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

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

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

    【讨论】:

    • 这似乎有效。只是一个问题:如果这是第一次提交表单,我怎么能不保存逗号?
    • 你可以做类似` $user->user_value = $user->user_value 的事情? $user->user_value.','.\Input::get('value');`.但是您是在进行更新还是创建新记录?
    • 我已经更新了我的答案,当第一个值为空时该怎么做。你能告诉我你在哪里得到这个错误吗?
    • 它是这样工作的。错误出现在这个$user-&gt;user_value = $user-&gt;user_value ? $user-&gt;user_value.','.\Input::get('value');
    【解决方案2】:

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

    【讨论】:

    • 感谢您的建议。 +1
    猜你喜欢
    • 1970-01-01
    • 2016-11-05
    • 2017-04-24
    • 1970-01-01
    • 2015-06-02
    • 2017-01-24
    • 2018-03-09
    • 2019-09-12
    • 2012-05-11
    相关资源
    最近更新 更多