【发布时间】:2015-12-17 02:20:17
【问题描述】:
使用单个模型一切正常,但现在我正在实施更多,我注意到了一个问题。
我有几个代表不同类型文档的文档模型。现在,假设我有 DocumentA 和 DocumentB。
每个文档都允许文件上传,所以我创建了一个文件上传模型。一个 Document 可以有多个 FileUploads。
所以,在这一点上看起来很简单。我的 FileUpload 表有一个 documentId 字段,它是对正在使用它的 Document 的 id 字段的引用。
在 DocumentA 中,我有类似的东西
public function uploadFile()
{
return $this->hasMany('App\UploadFile', 'documentId');
}
所以 DocumentA 可以有多个 UploadFiles,由 documentId 链接。
DocumentB 在其模型中具有相同的功能。
我的问题在于 UploadFiles 模型。首先,这个模型现在有两个belongTo事件,例如
public function documentA()
{
return $this->belongsTo('App\DocumentA', 'documentId');
}
public function documentB()
{
return $this->belongsTo('App\DocumentB', 'documentId');
}
这可能是问题所在,不确定我是否可以拥有多个属于?然而,我的直接问题与 doc_file 表的迁移有关。目前我有这个
Schema::table('doc_file', function (Blueprint $table) {
$table->integer('documentId')->unsigned()->default(0);
$table->foreign('documentId')->references('id')->on('document_a')->onDelete('cascade');
});
Schema::table('doc_file', function (Blueprint $table) {
$table->integer('documentId')->unsigned()->default(0);
$table->foreign('documentId')->references('id')->on('document_b')->onDelete('cascade');
});
所以我正在尝试为我的文档提供外键。当我尝试迁移时,它告诉我
列已存在:1060 列名 documentId 重复
我是否正确处理了我的人际关系?本质上,我有很多文档,每个文档可以有很多文件。
感谢任何有关我的数据库关系的帮助。
非常感谢
【问题讨论】:
标签: laravel-5