在store
函数中,我想在不转义URL的情况下将JSON数据保存在数据库中,例如:
$arr = [
'images'=>['original'=>'/uploads/contents/' . basename($filename)],
'thumbnail'=>'/uploads/contents/' . basename($filename)
];
$data = Contents::create([
'title' => $request->title,
'description' => $request->description,
'featured_images' => $arr,
'visit' => 0,
]);
要将此结果作为$arr
存储在我拥有的数据库中:
{
"images":
{"original":"\/uploads\/contents\/636459965493789558.jpg"},
"thumbnail":"\/uploads\/contents\/636459965493789558.jpg"
}
在那里,URL被转义。如何在不转义URL的情况下存储它?
我的模特选项:
protected $casts=[
'featured_images'=>'array'
];
答案 0 :(得分:1)
您可以手动编码json以防止斜线
json_encode($value, JSON_UNESCAPED_SLASHES);
答案 1 :(得分:0)
我认为你应该这样离开。
无论何时你想使用它,只需json_decode
这样。
<?php
$a = json_decode('{
"images":
{"original":"\/uploads\/contents\/636459965493789558.jpg"},
"thumbnail":"\/uploads\/contents\/636459965493789558.jpg"
}', true);
echo $a["images"]["original"];
?>
结果:
/uploads/contents/636459965493789558.jpg