下面的代码片段是收集和显示几个视频的次数。但它显示以下错误:
尝试在null上读取属性“episode”
从这一行:
$course->time = $this->getCourseTime($course->episode->pluck('time'));
AdminController:
public function setCourseTime($episode)
{
$course = $episode->course;
$course->time = $this->getCourseTime($course->episode->pluck('time'));
$course->save();
}
protected function getCourseTime($times)
{
$timestamp = Carbon::parse('00:00:00');
foreach ($times as $row)
{
$time = strlen($row) == 5 ? strtotime('00:' . $row) : strtotime($row);
$timestamp->addSecond($time);
}
return $timestamp->format('H:i:s');
}
模型Course.php
public function episode()
{
return $this->hasMany(Episode::class);
}
模型Episode.php
public function courses()
{
return $this->belongsTo(Course::class);
}
EpisodeController.php
public function store(EpisodeRequest $request)
{
$episode = Episode::create($request->all());
$this->setCourseTime($episode);
return to_route('episode.index');
}
3条答案
按热度按时间toe950271#
我假设在
Episode
模型中,您的意思是将关系命名为course
而不是courses
,因为它是一个属于(单数)关系。目前,除非你有一个名为
course
的属性/访问器/关系,否则当你试图访问那个'attribute'/property时,你会得到一个null
。此外,当创建一个新的
Episode
模型时,它不会为您创建相关的记录。创建后,相关记录不存在,因此关系不会返回结果。qoefvg9y2#
对
$course->episodes
使用dd
,如果为null,则使用以下命令:$course = $episode->course->load('episodes');
5vf7fwbs3#
尝试$course->episodes()->pluck('time');