我正在使用laravel 5.7。我现在遇到一种情况,我有一个结构为Fight
的{{1}}模型
我还有另外两个表user_id, fightable_id
和users
。因此monsters
指的是用户(用户可以打很多仗),而users_id
可以指的是fightable_id
或user
(怪兽表)。所以我必须定义关系船的功能
我必须做的用户模型
1。对于多态多对多关系
monster
2。用于简单的一对多关系
public function fights()
{
return $this->morphMany('App\Fight', 'fightable');
}
我现在很困惑。当然,唯一的方法是更改函数名称。但是我将通过正确更改函数名称来做正确的事情(因为两个函数具有相同的名称)。还是我做错了什么?
答案 0 :(得分:0)
我不确定我是否完全理解您的问题,但我会尽力而为!
此外,这篇文章确实可以帮助您了解您所面临的问题,我认为, 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');
}
}
如果您仍然觉得这还没有回答您的问题或需要更多帮助,请告诉我!