laravel 尝试在null上读取属性“episode”

syqv5f0l  于 2023-06-24  发布在  其他
关注(0)|答案(3)|浏览(110)

下面的代码片段是收集和显示几个视频的次数。但它显示以下错误:
尝试在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');
}
toe95027

toe950271#

我假设在Episode模型中,您的意思是将关系命名为course而不是courses,因为它是一个属于(单数)关系。
目前,除非你有一个名为course的属性/访问器/关系,否则当你试图访问那个'attribute'/property时,你会得到一个null
此外,当创建一个新的Episode模型时,它不会为您创建相关的记录。创建后,相关记录不存在,因此关系不会返回结果。

qoefvg9y

qoefvg9y2#

$course->episodes使用dd,如果为null,则使用以下命令:
$course = $episode->course->load('episodes');

5vf7fwbs

5vf7fwbs3#

尝试$course->episodes()->pluck('time');

相关问题