Php 如何在Laravel中实现子模型

Php 如何在Laravel中实现子模型,php,laravel-5.1,Php,Laravel 5.1,我的基础课是波斯特 还有很多子模型,如:视频贴子、图像贴子 所有类都有特定的属性&继承父属性 &所有类都需要特定的行为 问题 当在post模型上找到elequent给出超级模型(post)实例时,它是错误的 我需要子模型的实例如果我理解正确,您需要关系 将hasMany关系添加到您的Post.php模型: public function videos() return $this->hasMany(App\PostVideo::class); } public function

我的基础课是波斯特 还有很多子模型,如:视频贴子、图像贴子 所有类都有特定的属性&继承父属性 &所有类都需要特定的行为

问题

当在post模型上找到elequent给出超级模型(post)实例时,它是错误的
我需要子模型的实例

如果我理解正确,您需要关系

hasMany
关系添加到您的
Post.php
模型:

public function videos()
    return $this->hasMany(App\PostVideo::class);
}
public function post() {
    return $this->belongsTo(App\Post::class);
}
只要您的
post\u video
表有一个引用post的
post\u id
列,您就可以这样调用此关系:

foreach($post->videos as $video) {
    // Do something
}
和反向关系:

将关系添加到您的
PostVideo.php
模型:

public function videos()
    return $this->hasMany(App\PostVideo::class);
}
public function post() {
    return $this->belongsTo(App\Post::class);
}
当然,如果你有视频,你可以通过以下方式访问它所属的帖子:

$video->post

看起来你想要一个。在laravel中,这可以手动完成,也可以使用类似或的软件包。要手动使用单表继承,我建议您首先阅读。但是,请注意,单表继承将所有内容放在一个表中,但由多个具有不同行为的模型引用。如果这不是你想要的,只需使用简单而雄辩的查询和模型——阿月浑子已经解释过了。

你想做什么还不清楚。请提供更多的信息和代码示例。您的模型看起来像….?我想从模型继承子模型?基本上是一个共享属性但在子模型上添加了更多细节的模型?这可以通过几种方式实现,简单的雄辩(仍然使用单个主模型)或单表继承(在一个表上使用多个主模型)。