我正在将数据从控制器传递到javascript。
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>
如何删除JSON数据中的反斜杠?
注意:事件列的数据类型为JSON
我正在使用LARAVEL 7
谢谢
答案 0 :(得分:1)
您需要在控制器中解码json
public function index()
{
$events = json_decode(Eventcalendar::get()->pluck('event'));
return view('eventcalendar.index',compact('events'));
}
答案 1 :(得分:0)
如果您可以控制后端代码,即您正在向后端发送请求,则可以添加JSON_UNESCAPED_SLASHES
作为json_encode
函数的第二个参数以停止转义字符,因此应该看起来像json_encode($res, JSON_UNESCAPED_SLASHES)
。
如果必须使用Javascript处理,则可以使用JSON.parse(string)
并迭代数组中的每个条目。
您可能会这样使用某事;初始化一个新数组newData
并将解析的数据推入其中:
var newData = []
data.forEach(element => {
newData.push(JSON.parse(element))
})
答案 2 :(得分:0)
呈现JSON
有时您可能会将数组传递给视图,目的是 将其呈现为JSON以便初始化JavaScript变量。对于 例如:
<script>
var events = <?php echo json_encode($events); ?>;
</script>
但是,您可以使用代替手动调用json_encode @json Blade指令。 @json指令接受相同的参数 作为PHP的json_encode函数:
<script>
var events = @json($events);
var events = @json($events, JSON_PRETTY_PRINT);
</script>
答案 3 :(得分:0)
添加即可解决
protected $casts = [
'event' => 'array'
];