我有一个问题和错误:
这是错误:
以null调用成员函数pluck()
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
答案 0 :(得分:0)
确保您的关系与此定义相似:
public function episodes()
{
return $this->hasMany(Episode::class);
}
如果您在此处错过了return
,$course->episodes
将返回null
,因此无法在空值上运行pluck
。
答案 1 :(得分:0)
首先请确保您已在课程模型上定义了“情节”关系。
请注意。 $course->episodes
将作为“集合”从数据库中获取情节。
但是,如果您只需要time
个情节,请直接从数据库中进行过滤。
您应该做的是$course->episodes()
注意方括号。
这将称为“情节”关系。那么您可以致电pluck()
。
$course->episodes()->pluck('time')