我有两个表,分别是事件和组织。在一个组织中可能有多个事件。过去我不熟悉 Laravel,所以我创建了事件和组织模型。我在事件表的迁移中添加了外键
$table->bigInteger('organization_id')->unsigned()->default(null)->nullable();
现在我无法将组织 ID 更改为组织 ID,因为有很多行代码。我也在 Organizations.php 模型中做了
public function events()
{
return $this->hasMany(Events::class);
}
也在 Events.php 模型中作为
public function organization()
{
return $this->belongsTo(Organizations::class);
}
所以当我想将组织中的事件保存为
$organizations->events()->save($event); // $event is an object to be save in organization
然后它给出了一个例外
<块引用>未找到列:1054 Unknown column 'events.organizations_id' in 'where clause'(SQL:select * from events
where events
.organizations_id
= 3 and {{1} }.events
不为空)
我可以理解我必须将组织模型保留为组织,但目前不可能。那么还有什么其他方法可以将它与 organization_id 映射吗?
答案 0 :(得分:2)
是的,您可以,只需提供表示关系的列名作为关系中的第二个参数:
在事件模型中:
public function organization()
{
return $this->belongsTo(Organizations::class,'organization_id');
}
有关详细信息,请参阅 Laravel doc。