2016-10-17 45 views
1

create_team_social_icons_table.php如何存儲陣列的數據使用Laravel的foreach與ORM

 $table->increments('id'); 
     $table->integer('order_id'); 
     $table->integer('team_id'); 
     $table->integer('social_class'); 
     $table->string('link'); 

你好, 我從創建表單social_class []和鏈接[]兩種不同的陣列。嘗試一次使用表單記錄表單中的值。

<select name="social_class[]"> 
<select name="social_class[]"> 
<select name="social_class[]"> 
<select name="link[]"> 
<select name="link[]"> 
<select name="link[]"> 

我接收到的錯誤消息:

的preg_replace():參數不匹配,圖案是一個字符串,而替換是一個數組。

 $social_class = Input::get('social_class'); 
     $link = Input::get('link'); 
     foreach ($social_class as $socialClass) { 
      $tsi = new TeamSocialIcon(); 
      $tsi->order_id = 0; 
      $tsi->team_id = $insertedId; 
      $tsi->social_class = $socialClass; 
      $tsi->link = $link; 
      $tsi->save(); 
     } 
+0

?在我看來,你正在試圖保存'$ social_class'數組,而不是數組元素。嘗試改變:'$ tsi-> social_class = $ social_class;'到'$ tsi-> social_class = $ sc;' –

+0

你好我使用'$ tsi-> social_class = $ socialClass;'並更新了一些變量,但是'tsi- > link'或'$ link'仍然沒有價值。和preg_replace錯誤。 –

回答

0

我當你使用`$ sc`回答了自己對我的解決方案

$social_class = $request->social_class; 
$link = $request->link; 

     for($i = 0; $i < count($social_class); $i++) { 
      $tsi = new TeamSocialIcon(); 
      $tsi->order_id = 0; 
      $tsi->team_id = $insertedId; 
      $tsi->social_class = $social_class[$i]; 
      $tsi->link = $link[$i]; 
      $tsi->save(); 
     } 
0

嘗試使用爆炸方法將數組轉換爲字符串。您還應該將列數據類型更改爲字符串或varchar,以便成功保存數據。在檢索數據時,您可以使用implode方法將字符串轉換回數組。