Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Laravel 5.4 Kolory eventu
Forum PHP.pl > Forum > PHP
K3n0
Witam,
Mam problem dotyczący nadawania kolory dla poszczególnego eventu w kalendarzu. Chodzi mi o to, że mam tworzenie evetu i jest wbór tytulu eventu np Wydzial 1,2,3,4 i teraz chcialbym, żeby przy dodawaniu eventu ustawił się kolor względem wybranego tytułu.
Funkcja odpowiedzialna za wyświetlanie eventu w controllerze:
  1. /**
  2.   * Show the application dashboard.
  3.   *
  4.   * @return \Illuminate\Http\Response
  5.   */
  6. public function index()
  7. {
  8. $event = HomeModel::all();
  9.  
  10.  
  11. if($event->count()>0)
  12. {
  13. foreach ($event as $eve)
  14. {
  15. $all_day = $eve->day;
  16. $events[] = \Calendar::event(
  17. $eve->title,
  18. $eve->all_day,
  19. $eve->start,
  20. $eve->end,
  21. $eve->id
  22.  
  23. );
  24. }
  25. }
  26. else
  27. {
  28. $events = [];
  29.  
  30. }
  31.  
  32. $titles = HomeModel::where('title')->get();
  33.  
  34. foreach($titles as $title) {
  35. if($title == "Wydzial 1") {
  36. $color = '#378006';
  37. } elseif ($title == "Wydzial 2") {
  38. $color = '#ff0000';
  39. } elseif ($title == "Wydzial 3") {
  40. $color = '#73e600';
  41. } else {
  42. $color = '#0066ff';
  43. }
  44. }
  45.  
  46.  
  47. $calendar = \Calendar::addEvents($events)
  48. ->setOptions([
  49. 'FirstDay' => 1,
  50. 'contentheight' => 650,
  51. 'editable' => false,
  52. 'allDay' => false,
  53. 'aspectRatio' => 2,
  54. 'slotLabelFormat' => 'HH:mm:ss',
  55. 'timeFormat' => 'HH:mm',
  56. //'color' => $color
  57. ])->setCallbacks([]);
  58.  
  59. return view('home', compact('calendar'));
  60.  
  61. }
  62.  

Omenomn
Nie lepiej zrobić wybór koloru przy dodawaniu eventu?
Uzależnianie czegoś od treści tytułu to lekki bezsens, już lepiej użyć do tego pola slug, które ma ograniczoną ilość i różnorodność znaków.

Po za tym dodatkowe atrybuty modeli tworzy się w modelu, więc kod:
Kod
  
if($title == "Wydzial 1") {
                $color = '#378006';
            } elseif ($title == "Wydzial 2") {
                $color = '#ff0000';
            } elseif ($title == "Wydzial 3") {
                $color = '#73e600';
            } else  {
                $color = '#0066ff';
            }


powinien znaleźć się w modeu w funkcji getColorAttribute()

i wtedy wyciągasz kolor $model->color.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.