与关系的雄辩口才

问题描述 投票:0回答:1

在Laravel环境(v 5.7)中,我有两个表:filmsversions在模型中定义的一对多关系中的相关性如下:

class Film extends Model {
    ...
    public function versions() {
        return $this->hasMany(Version::class);
    }
}
class Version extends Model {
    ...
    public function film() {
        return $this->belongsTo(Film::class);
    }
}

我想选择一个电影的随机版本及其相关的父电影,所以在控制器中,我这样做:

...
use App\Film;
use App\Version;

class HomeController extends Controller {
    ...
    public function index() {
        $rndVersion = Version::inRandomOrder()->first();
        $relatedFilm = $rndVersion->film->first();

一切正常,除了返回的电影始终是整个记录集的第一个,而不是我先前从数据库加载的version的父项。

我尝试与以下对象一起检索所有内容:

$rndVersion = Version::inRandomOrder()->with('film')->first();

并且它可以工作,但是将所有内容打包在$ rndVersion中存储的单个对象中,我宁愿将这两件事分开保存。

所以,我在做什么错?我通常应该怎么做才能获得选定/加载的记录的父记录?

谢谢你。

relationship one-to-many laravel-5.7 eloquent--relationship
1个回答
0
投票

我发现了问题...

© www.soinside.com 2019 - 2024. All rights reserved.