Laravel-如何使用传递给刀片.php视图的Javascript "catch"变量



所以我目前正在做一个项目,我想添加一个日历到一个视图,我使用FullCalendar,日历显示在视图中,但我目前正试图添加事件到该日历,这些事件将被"拉出"从数据库到要显示的日历,现在的问题是,当我将包含事件的数组传递给包含日历的blade。php视图时出现了一个错误,说变量&;events&;是未定义的,我不知道我是否做错了什么,这是代码:

RegisteredUserController.php

$events = array();
$citas = Cita::all();
foreach($citas as $cita){
$events[] = [
'title' => $cita->paciente_id,
'start' => $cita->hora_de_inicio,
'end' => $cita->hora_de_finalizacion
];
}
return redirect(RouteServiceProvider::HOME)->with(['events' => $events]);

RouteServiceProvider.php

public const HOME = '/home';

homeView.blade.php (这就是我得到错误的地方,在我将其分配给citas的行中)

<div id="calendar">
</div>
<script>
$(document).ready(function(){
var citas = @json($events);
$('#calendar').fullCalendar({
header: {
left: 'month, agendaWeek, agendaDay',
},
events: citas
})
});
</script>

routes/web.php

Route::get('/home', function (){
return view('homeView');
})->name('homeView');

不确定它是否有帮助,但我使用Laravel的微风来处理用户的身份验证,所以当用户身份验证时,他们被重定向到日历所在的页面。

我试过下面的

RegisteredUserController.php

return redirect(RouteServiceProvider::HOME, compact('events));

这个使整个日历消失:

homeView.blade.php

var citas = {{ Session::get('events') }};

提前谢谢你。

返回值应该是这样的

return view('path_of_the_blade', compact('events'));

那么在视图中,你可以使用

<script>
var citas = @json($events);
</script>

在你的控制器上,为什么不直接使用:

return view('homeView')->with(['events' => $events]);

或更简单:

return view('homeView', compact('events'));

这肯定会在刀片文件上传递变量events

然后在你的刀片文件中,你将它引用为:

var citas = {{ $events }};

最新更新