簡體   English   中英

Laravel-如何“捕獲”傳遞給刀片的 Javascript 變量。php 視圖

[英]Laravel- How to "catch" a variable with Javascript passed to a blade.php view

所以我目前正在處理一個項目,我想將日歷添加到一個視圖,我正在使用 FullCalendar,日歷顯示在視圖中,但我目前正在嘗試向該日歷添加事件,這些事件正在進行中要從我的數據庫“拉”到要顯示的日歷中,現在的問題是當我將帶有事件的數組傳遞給 blade.php 包含日歷的視圖時出現錯誤,說變量“事件”是未定義,我不知道我是否做錯了什么,這是代碼:

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>

路線 / web.php

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

不確定它是否有幫助,但我正在使用 Laravel 的 Breeze 來處理用戶的身份驗證,因此當用戶經過身份驗證時,他們將被重定向到日歷所在的頁面。

我試過以下

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>

在你 controller 上,你為什么不簡單地使用:

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

或更簡單:

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

甚至

return view('homeView', ['events']);

這肯定會傳遞刀片文件上的變量events

然后在您的刀片文件中,您只需將其引用為:

var citas = {{ $events }};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM