我正在加入2个变量
- $ link1 ---对象
- $ 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
我完全对此感到困惑,任何人都可以提出帮助。
查看模型的属性铸造。将protected $casts
数组添加到您的Setting
型号:
class Setting extends Model
{
protected $casts = ['value' => 'object'];
// Class properties and methods
}
这将自动处理您的序列化和不重新化此属性。
这也将使您在设置该值之前跳过将数组施放到对象的步骤,并将允许您执行的幕后对象施放到幕后的对象:
$settings->value = array_merge((array) $link1, $mynewvalue);
$settings->save();
假设您的示例可以使用serialize
http://php.net/manual/manual/fr/function.serialize.php
或使用json_encode
在JSON中对其进行编码http://php.net/manual/fr/function.json-encode.php
如果您想在这些值中搜索,保存序列化对象或JSON编码对象确实是最好的选择。
最后,您要做的不是串联,而是合并(那不是同一件事(。查看串联,附加和合并SAS有什么区别?有关串联/合并差异的更多信息