【发布时间】:2020-07-21 15:04:33
【问题描述】:
我正在使用 Laravel 5.4。
我已经设置了一个 $casts 数组:
protected $casts =
[
'language_meta' => 'object'
];
但是当我插入一个数组时:
[
"meta_page_title_cc__c" => "Historic villa for sale within moments of central Florence"
"meta_page_title_fr__c" => null
"meta_page_title_it_cc__c" => "Villa prestigiosa in vendita situata appena fuori il centro storico di"
"meta_page_title_ru_cc__c" => null
"meta_description_it_cc__c" => "Situata in uno dei sobborghi residenziali più prestigiosi di Firenze, questa straordinaria villa storica in vendita è una rara scoperta architettonica che unisce al suo interno magnifiche caratteristiche originali."
"meta_description_fr_cc__c" => null
"meta_description_ru_cc__c" => null
]
我在该数组上运行 json_encode 并得到:
{
"meta_page_title_cc__c": "Historic villa for sale within moments of central Florence",
"meta_page_title_fr__c": null,
"meta_page_title_it_cc__c": "Villa prestigiosa in vendita situata appena fuori il centro storico di",
"meta_page_title_ru_cc__c": null,
"meta_description
_it_cc__c ":"
Situata in uno dei sobborghi residenziali pi\u00f9 prestigiosi di Firenze,
questa straordinaria villa storica in vendita \u00e8 una rara scoperta architettonica che unisce al suo interno magnifiche caratteristiche originali.
","
meta_description_fr_cc__c ": null,
"meta_description_ru_cc__c": null
}
然后我试图插入这个,我怀疑是因为“强制转换”,所以它会插入数据:
"{\"meta_page_title_cc__c\":\"Luxury Property For Sale near Montecatini Tuscany\",\"meta_page_title_fr__c\":null,\"meta_page_title_it_cc__c\":\"Immobili di lusso in vendita vicino Montecatini Toscana\",\"meta_page_title_ru_cc__c\":null,\"meta_description_it_cc__c\":\"Casolare con finitura di pregio in vendita - Montecatini Toscana\",\"meta_description_fr_cc__c\":null,\"meta_description_ru_cc__c\":null}"
我无法通过迁移将我的列设置为“json”,因此将该列设置为 longtext。
有没有办法通过 $casts 选项正确插入数据,然后按预期解码数据?我注意到删除 $casts 和 json 数据正确进入。
也许有一种方法可以使用 $casts 并正确存储对象?
谢谢
【问题讨论】: