将数据传递给javascript,但得到了太多反斜杠
我正在将数据从控制器传递到javascript将数据传递给javascript,但得到了太多反斜杠,javascript,php,laravel,Javascript,Php,Laravel,我正在将数据从控制器传递到javascript public function index() { $events = Eventcalendar::get()->pluck('event'); return view('eventcalendar.index',compact('events')); } 这是我在刀刃上做的 <script type="text/javascript"> var data = {!! $ev
public function index()
{
$events = Eventcalendar::get()->pluck('event');
return view('eventcalendar.index',compact('events'));
}
这是我在刀刃上做的
<script type="text/javascript">
var data = {!! $events !!}
console.log(data) //the result is in the screenshot
</script>
变量数据={!!$events!!}
console.log(data)//结果在屏幕截图中
如何删除JSON数据中的反斜杠
注意:事件列datatatype为JSON
我正在使用LARAVEL 7
多谢各位
您需要在控制器中解码json
public function index()
{
$events = json_decode(Eventcalendar::get()->pluck('event'));
return view('eventcalendar.index',compact('events'));
}
如果您可以控制后端代码,即向后端发送请求,则可以添加
JSON\u UNESCAPED\u SLASHES
作为JSON\u encode
函数的第二个参数,以停止转义字符,因此它看起来应该是这样的:JSON\u encode($res,JSON\u UNESCAPED\u SLASHES)
如果必须用Javascript处理这个问题,可以使用JSON.parse(string)
并迭代数组中的每个条目
你可以用这样的东西;初始化新数组newData
,并将解析后的数据推入其中:
var newData = []
data.forEach(element => {
newData.push(JSON.parse(element))
})
据
呈现JSON
有时,您可能会将一个数组传递给视图,目的是
将其呈现为JSON以初始化JavaScript变量。对于
例如:
var事件=;
但是,您可以使用
@json刀片指令。@json指令接受相同的参数
作为PHP的json_编码函数:
var events=@json($events);
var events=@json($events,json\u PRETTY\u PRINT);
通过添加
protected $casts = [
'event' => 'array'
];
在
返回
语句之前,在控制器函数中尝试json\u decode($events)
,只需将{!!$events!!}
更改为@json($events)
错误数组字符串转换
<script>
var events = @json($events);
var events = @json($events, JSON_PRETTY_PRINT);
</script>
protected $casts = [
'event' => 'array'
];