json encode store data in db with doubleqoutes

我使用 PHP/MySQL。我的问题是当我使用 json_encode PHP 存储数据时,我使用双引号 ("") 获取数据。


我的控制器:


$description['content'] = $request->content;

    $description['location'] = $request->location;

    $description['area'] = $request->area;


    $id = Auth::id();

    $property = new Property();

    $property->user_id = $id;

    $property->title = $request->title;

    $property->description = json_encode($description);

    $property->status = 0;

    $property->due_date = $request->due_date;

    $property->save();

数据输入数据库


"{"content":"lorem ipsum sit dolor amet","location":"sby","area":"2"}"

我期望的,就像这样没有双引号:


{"content":"lorem ipsum sit dolor amet","location":"sby","area":"2"}

我的错在哪里。谢谢


慕的地6264312
浏览 173回答 1
1回答

SMILET

正如在您的评论中,您说“在 mysql 中我将 json 数据类型”设置为description字段,将其投射到您的模型中并且不要使用 json_encode 来保存它。数组和 JSON 转换在处理存储为序列化 JSON 的列时,数组转换类型特别有用。例如,如果你的数据库有一个包含 serialized 的JSONorTEXT字段类型,当你在 Eloquent 模型上访问它时,JSON将数组转换添加到该属性将自动将该属性反序列化为 a :PHP arrayclass Property extends Model{    /**     * The attributes that should be cast.     *     * @var array     */    protected $casts = [        'description' => 'array',    ];}定义转换后,您可以访问该description属性,它会自动JSON反序列化为PHP array. 当您设置属性的值时description,给定的数组将自动序列化回JSON存储:$description['content'] = $request->content;$description['location'] = $request->location;$description['area'] = $request->area;$id = Auth::id();$property = new Property();$property->user_id = $id;$property->title = $request->title;$property->description = $description;$property->status = 0;$property->due_date = $request->due_date;$property->save();
打开App,查看更多内容
随时随地看视频慕课网APP