2017-06-28 39 views
1

我串聯2個變量如何OBJ保存分貝laravel(MySQL的)

  1. $鏈接1 ---對象
  2. $ mynewvalue ----陣列
$obj_merged = (object) array_merge((array) $link1, $mynewvalue); 
$settings->value = $obj_merged; 

$settings->save(); 

錯誤:

Object of class stdClass could not be converted to string 

我完全困惑這個任何人都可以請建議help.Thanks。

+0

不太清楚你」重新尋找。你是否試圖在設置表中保留關於'$ obj_merged'的所有信息?這個值是在表中序列化的嗎?你如何獲得'$ link'開始? – cwallenpoole

回答

0

假設你的榜樣,您可以使用serializehttp://php.net/manual/fr/function.serialize.php

序列化對象或使用json_encode http://php.net/manual/fr/function.json-encode.php

保存序列化對象或對其進行編碼的JSON JSON編碼的對象是真的,如果你做的最好的事情正在嘗試搜索這些值。

最後,你要做的不是連接,而是合併(這不是一回事)。有關級聯/合併差異的更多信息,請參閱What is the difference between concatenate, appending and merge on SAS?

1

查看attribute casting的型號。一個protected $casts陣列添加到您的Setting型號:

class Setting extends Model 
{ 
    protected $casts = ['value' => 'object']; 

    // Class properties and methods 
} 

這將自動處理序列化和反序列化這個屬性給你。

這也將讓你設定值之前跳過陣列鑄造到對象的步驟,並且將強制轉換爲對象在幕後爲你讓你做:

$settings->value = array_merge((array) $link1, $mynewvalue); 

$settings->save();