我已经从laravel创建了这段代码:
public function findConfig($id)
{
$config = DB::table('configuration')
->join('model', 'model.configuration_id','=', 'configuration.id')
->select('configuration.id','configuration.description', 'model.name','configuration.price')
->where('configuration.id','=', $id)
->get();
$encode = json_encode($config, JSON_UNESCAPED_SLASHES);
$response = Response::make($encode, 200);
$response->header('Content-Type', 'application/json');
return $response;
}
然后返回就像这样
[{
"id": "1",
"description": "{\"item\":[{'colours\":[\"red\",\"blue\",\"green\"]},{\"motors\":[ {\"name\":\"450W/48V\",\"price\":\"2,000\"},{\"name\":\"550W/48V\", \"price\":\"3,000\" }] } ]}",
"name": "k5-A",
"price": "300000"
},
{
"id": "1",
"description": "{\"item\":[{'colours\":[\"red\",\"blue\",\"green\"]},{\"motors\":[ {\"name\":\"450W/48V\",\"price\":\"2,000\"},{\"name\":\"550W/48V\", \"price\":\"3,000\" }] } ]}",
"name": "r-A",
"price": "300000"
}
]
如何删除斜杠而不是string
作为返回类型,它应该是JSON?
答案 0 :(得分:0)
正如lukasgeiter所说,通常将json存储在db中并不是一个好主意。按该字段过滤可能会很困难。 如果您决定这样做,并且需要获取解码数据,则可以在模型中使用访问器。我不知道这是不是最好的做法。如果描述作为json保存在db中,则可以执行以下操作: 对于"配置"表格你可能有一个"配置" model(Laravel官方网站建议将表格命名为复数,其中的模型是单数,如:table - > configuration和model configuration)。在该文件中,您可以添加:
public function getDescriptionAttribute($value)
{
return json_decode($value, true);
}
现在,description字段作为数组返回。 您可以在此处查看有关访问者和变更者的更多信息:http://laravel.com/docs/4.2/eloquent#accessors-and-mutators