2017-05-06 2 views
0

Ich habe dieses https://fullcalendar.io/ Vollkalender jquery Plugin verwendet.Ändern von Attributen zu Array-Elementen

Ich habe die Tabelle Ereignisse, und ich kann die Ereignisse wie erhalten:

public function index() 
{ 
    $events=Event::all(); 
    return view('index')->with('events',$events); 
} 

$event->event_date und $event->name geben Datum des Ereignisses und Ereignisnamen. Ich muss den Ereignisnamen dem entsprechenden Datum im Kalender hinzufügen?

Ich habe dies versucht:

$('#calendar').fullCalendar({ 
    events:[ 
      { 
       title:'{{$events[0]->name}}', 
       start:'{{$events[0]->event_date}}' 
      } 
      ] 
}); 

Dies wird nur die erste Veranstaltung in der Reihe geben. Aber, wie kann ich alle Ereignisse bekommen und nicht nur einen? weil ich title und start in $events Array nicht habe? oder im Grunde brauche ich nur eine Schleife?

+0

Überprüfen Sie die [Grundbeispielquellcode] (https://fullcalendar.io/js/fullcalendar-3.4.0/demos/ basic-views.html). 'events' ist ein Array mit den Attributen' start', 'title' und' end' date. –

+0

@ kiran.koduru. Ich habe das Ereignis-Array, aber nicht diese Attribute. Ich habe die Frage bearbeitet, wenn Sie überprüfen könnten. – Steve

Antwort

1

Versuchen mapWithKeys

public function index() 
{ 
    $events=Event::all(); 
    $keyed = $collection->mapWithKeys(function ($item) { 
     return ['title' => $item['name'], 'start' => $item['event_date']]; 
    }); 
    return view('index')->with('events',$keyed); 
} 

In Blade-Vorlage

$('#calendar').fullCalendar({ 
    events:{!! json_encode($events) !!} 
}); 
+0

Dank, aber es ist in der Konsole mit etwas like'events zeigt Fehler: {" Titel ": " Neujahr ", " " starten: " 2018.01.01 "}, 'und auch mit dieser nur ein Ereignis angezeigt wird. – Steve

+0

Sorry benutze die '{!! !!} 'so entgeht Klinge nicht dem HTML. Ich habe meine Antwort aktualisiert. – whoacowboy

+0

aber '$ events' gibt immer nur ein Ereignis zurück. – Steve

Verwandte Themen