laravel 中与模型名称不同的列的关系
relation on column with different name from model in laravel
我有两个 table 作为 events 和 organisations。在一个组织中可能有多个事件。过去我不熟悉 laravel 所以我创建了事件和组织模型。我在事件的迁移中添加了外键 table as
$table->bigInteger('organization_id')->unsigned()->default(null)->nullable();
现在我无法将organization_id更改为organizations_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
然后它给出了一个例外
Column not found: 1054 Unknown column 'events.organizations_id' in 'where clause' (SQL: select * from events
where events
.organizations_id
= 3 and events
.organizations_id
is not null)
我知道我必须将组织模型保留给组织,但现在不可能。那么还有其他方法可以用 organization_id 映射它吗?
是的,您可以,只需提供表示关系的列名称作为关系中的第二个参数:
在事件模型中:
public function organization()
{
return $this->belongsTo(Organizations::class,'organization_id');
}
有关详细信息,请参阅 Laravel doc。
我有两个 table 作为 events 和 organisations。在一个组织中可能有多个事件。过去我不熟悉 laravel 所以我创建了事件和组织模型。我在事件的迁移中添加了外键 table as
$table->bigInteger('organization_id')->unsigned()->default(null)->nullable();
现在我无法将organization_id更改为organizations_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
然后它给出了一个例外
Column not found: 1054 Unknown column 'events.organizations_id' in 'where clause' (SQL: select * from
events
whereevents
.organizations_id
= 3 andevents
.organizations_id
is not null)
我知道我必须将组织模型保留给组织,但现在不可能。那么还有其他方法可以用 organization_id 映射它吗?
是的,您可以,只需提供表示关系的列名称作为关系中的第二个参数:
在事件模型中:
public function organization()
{
return $this->belongsTo(Organizations::class,'organization_id');
}
有关详细信息,请参阅 Laravel doc。