Вызов функции-члена pluck () в null - PullRequest
0 голосов
/ 14 октября 2018

У меня проблема и ошибка:

это ошибка:

Вызов функции pluck () для функции null

    protected function setCourseTime($episode)
{
    $course = $episode->course;
    $course->time = $this->getCourseTime($course->episodes->pluck('time'));
    $course->save();
}

protected function getCourseTime($times)
{
    $timestamp = Carbon::parse('00:00:00');
    foreach ($times as $t) {
        $time = strlen($t) == 5 ? strtotime('00:' . $t) : strtotime($t);
        $timestamp->addSecond($time);
    }
    return $timestamp->format('H:i:s');
}

}

Спасибо за вашу помощь

Laravel версия: 5.7 php версия: 7.0.2

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Сначала убедитесь, что вы определили отношение «эпизоды» в модели курса.

Обратите внимание на это.$course->episodes будет извлекать эпизоды из базы данных как «Коллекция».

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

* Вам нужно будет $course->episodes() отметить скобки .
Это назовет отношения «эпизоды».тогда вы можете позвонить pluck().

$course->episodes()->pluck('time')
0 голосов
/ 14 октября 2018

Убедитесь, что ваши отношения определены следующим образом:

public function episodes()
{
    return $this->hasMany(Episode::class);
}

Если вы пропустите return здесь, $course->episodes вернет null, поэтому невозможно запустить pluck при нулевом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...