我正在使用laravel 5.7。我现在有一种情况,我有一个Fight
模型与结构user_id, fightable_id
我有两个其他表users
和monsters
。所以users_id
指用户(用户可以有很多打架)和fightable_id
可以指user
或monster
(怪物表)。所以我必须定义关系船的功能
对于我必须做的用户模型
1.多态一对多关系
public function fights()
{
return $this->morphMany('App\Fight', 'fightable');
}
2.简单的一对多关系
public function fights()
{
return $this->hasMany('App\Fight');
}
我现在很困惑。当然唯一的办法就是改变功能名称。但我会通过改变函数名称来做正确的事情(因为两个函数都有相同的名称)。或者我做错了什么?
我不确定我完全理解你的问题,但我会尽我所能!
此帖也将真正帮助您了解您所面临的问题,Laravel morph relationship
使用我链接的帖子中的代码,但是使用你的表格会产生这样定义的模型。
用户模型
class User extends Model
{
public function fights()
{
return $this->hasMany('App\Fight');
}
}
战斗模型
class Fight extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function fightable()
{
return $this->morphTo();
}
}
怪物模型
class Monster extends Model
{
public function fight()
{
return $this->morphOne('App\Fight', 'fightable');
}
}
如果您仍然觉得这没有回答您的问题或需要更多帮助,请告诉我!