Laravel 将数据以 JSON 形式保存在数据库中,而不转义 URL

Dol*_*rma 5 php laravel laravel-5

在函数中store,我想将 JSON 数据保存在数据库中而不转义 URL,例如:

$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,
]);
Run Code Online (Sandbox Code Playgroud)

为了将此结果存储$arr在数据库中,我有:

{
    "images":
          {"original":"\/uploads\/contents\/636459965493789558.jpg"},
    "thumbnail":"\/uploads\/contents\/636459965493789558.jpg"
}
Run Code Online (Sandbox Code Playgroud)

在此过程中,URL 被转义了。如何在不转义 URL 的情况下存储它?

我的模型选项:

protected $casts=[
    'featured_images'=>'array'
];
Run Code Online (Sandbox Code Playgroud)

plm*_*nts 2

您可以手动编码 json 以防止出现斜杠

json_encode($value, JSON_UNESCAPED_SLASHES);
Run Code Online (Sandbox Code Playgroud)

  • 使用此提示将此数据存储在数据库中 `"{\"images\":{\"original\":\"\/uploads\/contents\/636453857006939814.jpg\"},\"thumbnail\":\"\ /上传\/内容\/636453857006939814.jpg\"}"` (2认同)