laravel Package开发,如何处理一个包内的Model和包外Model的多对多关系

laravel Package开发,如何处理一个包内的Model和包外Model的多对多关系?

例如:
比如我们要写一个很牛逼的Article的Package,这个包主要提供管理文章的相关功能。
如果别人也要写博客网站用到Article功能,可以直接用我们的package。

但是在某些用了我们这个Article包的项目中,我们希望Article要跟项目中的User建立多对多关系,我们如何在Package的Article下定义好多对多关系呢?
对于Article这个Pakcage,User这个Model不一定会存在。

JellyBool

这个时候定义一个 trait 应该就可以解决。

charlie 回复 JellyBool

在包内定义一个trait可以在项目User中用,但是在Article中咋用trait呢?没想明白,在Article中怎么补上belongsToMany?

charlie

package可以通过config文件来给外界定义User Model

public function users()
{
    return $this->belongsToMany(config('article_manager.users.model'));
}

config/article.php

{
     users:
     {
          model: 'App\User'
     }
}