gpt4 book ai didi

php - Laravel Eloquent 与扩展模型的关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:31 24 4
gpt4 key购买 nike

我在一个有扩展模型的网站上工作,例如。

class Asset extends Model {

public function project() {
return $this->belongsTo(Project::class);
}
}

class Video extends Asset {

}

我是否需要与扩展类建立相同的 belongsTo Eloquent 关系,或者凭借父类拥有它,Laravel 会做剩下的事情吗?

此外,是否有任何文档详细说明如何构建此类关系(即,就 Controller 而言)?我在(通常非常出色的)Laracasts 网站上找不到任何内容。

最佳答案

您不需要两次实例化扩展方法,除非您想用不同的行为覆盖它。

我个人在我的应用程序中使用了很多继承,它的工作方式正如您所期望的那样,每个关系都使用父默认值或您声明的特定 protected 变量继续工作和查询。

例如,如果您声明一个 protected $table = 'foo',子项也会使用该变量来执行其查询,或者您可以在子项上覆盖它以查询不同的表来自 parent 。

在文档方面,您找不到太多信息的原因我认为是因为这更像是一个 PHP 和 OOP 问题,而不是特定于框架的问题。

如果你想声明多态关系,这是在你的 SQL 中实现多重继承的一种非常常见的方式,Laravel 会支持你,具体 Eloquent relationsmigration commands ,比如 $table->morphs('asset');

希望对你有帮助。

关于php - Laravel Eloquent 与扩展模型的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com