如何在Laravel 5中为此关系创建模型?

雅亚·乌丁(Yahya Uddin)

我有以下架构:

Modules
=======
id: PK
current_revision: FK to Revisions.Id, nullable

Revisions
=========
id: PK

current_revision字段引用单个修订版ID或设置为null。

我的问题是如何在Laravel中正确建模这种关系。

到目前为止,这是我的操作方式:

class Module extends Model
{
    public function current_revision()
    {
        return $this->belongsTo(Revision::class, 'current_revision');
    }

}

但是,我没有在revision模型中进行逆运算,因为可能会有未module分配的修订

这是建立这种关系模型的正确方法吗?

另外,为什么以下内容$module->current_revision不输出修订集?而是输出该字段的内容。

但是,值得一提的是,以下各项工作正常: $module->current_revision()->getResults()

丹尼尔·卡斯特罗

关于您目前的关系:

由于current_revision仅指向修订表上的一条记录,因此您可以期望您的关系返回一个修订版本模型,而不是集合。

之所以要获取字段内容而不是模型,是因为您的字段和关系使用相同的名称。因此,当您要求时$model->current_revision,Laravel会为您提供数据库中该字段的值。

解决此问题的最简单方法是重命名数据库列或关系名称。我通常将_id附加到外键列上,这样永远不会有问题。

关于逆关系:

即使该列可以为空,也可以用相同的方式定义关系。如果没有任何模块与一个修订版相关,$revision->module例如,将仅返回null。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel测试中创建模拟模型

来自分类Dev

在Laravel 5中从数据库创建模型

来自分类Dev

如何在laravel中创建3个模型之间的关系?

来自分类Dev

在Laravel中对自我关系进行大规模分配(我需要创建模型吗?)

来自分类Dev

Laravel为什么无法创建模型关系?

来自分类Dev

如何在 Laravel 中创建关系

来自分类Dev

如何在sailjs中创建模型的新实例?

来自分类Dev

如何在JavaScript中创建模型实例的实例?

来自分类Dev

如何在Node.js中创建模型

来自分类Dev

如何在 views.py 中创建模型的实例?

来自分类Dev

如何在 PHP 中创建模型类?

来自分类Dev

如何为此功能创建模板?

来自分类Dev

如何在Laravel 5中调用模型?

来自分类Dev

如何在Laravel 5中调用模型?

来自分类Dev

如何从集合创建模型?Laravel 5.5

来自分类Dev

如何在Laravel 5中创建包?

来自分类Dev

如何在laravel模型中定义多对多关系?

来自分类Dev

如何在Laravel中建立3模型之间的关系?

来自分类Dev

如何在邮递员中测试laravel模型关系

来自分类Dev

如何在 Laravel 中返回带有他的关系的模型?

来自分类Dev

在laravel中的自定义路径中创建模型

来自分类Dev

在laravel中创建模型对象时,with()是什么?

来自分类Dev

在 Laravel 中获取与创建模型输入相关的错误

来自分类Dev

Django中的Foreignkey。如何正确创建模型

来自分类Dev

如何在创建事件中调用模型函数?Laravel-5

来自分类Dev

Laravel:如何在标签模型中创建唯一标签

来自分类Dev

如何在Laravel 5中加入模型?

来自分类Dev

如何在laravel 5中的模型上模拟create方法?

来自分类Dev

如何在Laravel订购关系?

Related 相关文章

热门标签

归档