Я получаю события из модели DirtyEvent, и я хочу создать Ical, используя значения из результатов, однако он говорит, что значения не существуют в текущей коллекции:

public function handle()
{
    $event = DirtyEvent::all()
            ->pluck('startdate')
            ->pluck('endate');
    dd($event);
    $vCalendar = new \Eluceo\iCal\Component\Calendar('http://localhost/test');
    $vEvent = new \Eluceo\iCal\Component\Event();
    $vEvent ->setDtStart(new \DateTime($event->startdate))
            ->setDtEnd(new \DateTime($event->endate));
    $vCalendar->addComponent($vEvent);
    dd($vCalendar);
}
1
Przemek Wojtas 18 Июл 2017 в 11:38
Каков результат в dd($event)?
 – 
Arigi Wiratama
18 Июл 2017 в 11:40

1 ответ

Лучший ответ
DirtyEvent::all()
    ->pluck('startdate')
    ->pluck('endate');

Что ты здесь делаешь

  1. Получить все события
  2. Вытащите startdate из коллекции этих событий
  3. Попробуйте вытащить enddate из коллекции собранных дат начала

Вместо этого вы должны сделать, например,

DirtyEvent::pluck('startdate', 'enddate')->all();

Чтобы получить массив дат, который затем можно использовать для заполнения данных.

3
Joel Hinz 18 Июл 2017 в 11:41
Когда я делаю foreach ($ event as $ events), он сохраняет только значение endate, а $ event дает мне 'startdate' => 'endate', еще одна вещь, у меня есть 15 полей в базе данных, мне нужно собирать для всех из них или есть другой способ?
 – 
Przemek Wojtas
18 Июл 2017 в 11:55
Да, вот как работает щипание. Если вы хотите, чтобы они были массивом, используйте ->select('startdate', 'enddate')->get().
 – 
Joel Hinz
18 Июл 2017 в 11:56