如何在 Laravel 中使用 eloquent 而不使用 \r\n return json 响应

How to return json response in Laravel using eloquent without \r\n

我将 laravel 与 eloquent 一起使用,在 json 响应中我得到 \r\n。我怎样才能摆脱它们?

public function showOneProduct($lng)
{
  return response()->json(Product::where('language', $lng)->get());
}

回复:

[
    {
        "id_produs": 1,
        "produs": " [\r\n        {\r\n        \"product_line\": \"TankTorq Line\",\r\n        \"colors\": [\r\n           \"#D66732\",\r\n           \"#000000\",\r\n           \"#909090\",\r\n           \"#E0E0E0\"\r\n        ],\r\n        \"max_speed\": \"46 km/h\",\r\n        \"range\": \"up to 40 km\",\r\n        \"weight\": \"13.2 kg\",\r\n        \"engine\": \"700W\",\r\n        \"nominalPower\": \"700W\",\r\n        \"nominalContinuousPower\": \"500W\",\r\n        \"line_image\": \"https://worldconnect.me/images/tanktork.png\",\r\n        \"products\": [\r\n           {\r\n              \"name\": \"TK2\",\r\n              \"scooter_features\": [\r\n                 {\r\n                    \"title\": \"Dual motor technology\",\r\n ]",
        "language": "en"
    }
]

您正在将 produs 列保存为 JSON, 因此您可以使用 accessor 将其检索为数组而不是 JSON

public function getProdusAttribute($value) {
  return json_decode($value,true);
}

如果您仍然想通过删除 \r\n 来检索它 你可以使用 preg_replace ,它会成功

   public function getProdusAttribute($value) {
      return preg_replace("!\r?\n!", "", $value);
    }

你应该使用:

public function showOneProduct($lng)
{
  return response()->json( json_decode( json_encode( Product::where('language', $lng)->get() ), true ) );
}

也许会有帮助