2017-02-22 34 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-> user_value '' \ Input :: получить ('значение');.. '. Но вы делаете обновление или создание новой записи? –

+0

Запись Firs - это вставка (новая), после которой это обновление –

2

Одним из решений было бы получить текущее значение из базы данных, объединить новое значение (из формы) с текущим как строки и затем сохранить объединенное значение.

+0

Спасибо за предложение. +1 –