2017-02-22 94 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 –

相關問題