【问题标题】:A model with polymolymorphic ony to many and simple one to many relationship具有多态一对多和简单一对多关系的模型
【发布时间】:2019-07-29 18:44:09
【问题描述】:

我正在使用 laravel 5.7。我现在有一个Fight 结构user_id, fightable_id 的模型 我还有另外两张桌子usersmonsters。所以users_id 指的是用户(一个用户可以进行多次战斗),fightable_id 可以指的是usermonster(怪物表)。所以我必须为关系定义函数

对于用户模型我必须这样做

1.对于多态的一对多关系

public function fights()
{
    return $this->morphMany('App\Fight', 'fightable');
}

2.对于简单的一对多关系

 public function fights()
    {
        return $this->hasMany('App\Fight');
    }

我现在很困惑。当然,唯一的方法是更改​​函数名称。但我将通过正确更改函数名称来做正确的事情(因为两个函数具有相同的名称)。还是我做错了什么?

【问题讨论】:

    标签: laravel eloquent polymorphic-associations


    【解决方案1】:

    我不确定我是否完全理解你的问题,但我会尽力而为!

    我认为,这篇文章也将真正帮助您理解您面临的问题, 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');
      }
    }
    

    如果您仍然觉得这没有回答您的问题或需要更多帮助,请告诉我!

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多