【问题标题】:nWidart Modules relationshipsnWidart 模块关系
【发布时间】:2021-10-21 17:46:12
【问题描述】:

我有一个应用程序,我想在其中允许模块。我发现 nWidart /Laravel-modules 是最好的解决方案。我过去使用过它,但在我之前的项目中,我是唯一的开发人员,所以当我在模块内创建模型时,为了创建它与我的一个基本模型之间的关系,我只是去编辑两个文件:

在 App\Models\Disease 我会添加一个新方法:

public function symptoms(){
    return $this->hasMany( Modules\Treatments\Entities\Symptom::class );
}

在 Modules\Treatments\Entities\Symptom 中,相反:

public function disease(){
    return $this->belongsTo( App\Models\Symptom::class );
}

现在,我想创建这些关系,但无需在 App\Models 文件中编写代码(当然我知道需要进行一些修改才能使其工作,我的意思是不必每次都编辑文件创建一个模块)。有没有办法做到这一点?有可能解决吗?

【问题讨论】:

  • 扩展课程!这是一个简单的解决方案类 Disease extends App\Models\Disease ?

标签: laravel module laravel-modules


【解决方案1】:

好的,在模块实体中,我创建了一个新模型 Modules\Treatments\Entities\Disease,它从 App\Models\Disease 扩展而来,并在那里插入了关系方法。

use App\Models\Disease as BaseDisease;

class Disease extends BaseDisease{
    /**
     * Relationship between a Disease and it's symptoms
     *
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function symptoms(){
        return $this->hasMany( Modules\Treatments\Entities\Symptom::class );
    }
}

这种方法的缺点是这种关系仅在我从 Modules\Treatments\Entities\Disease 加载疾病时才存在,但我找不到其他方法

【讨论】:

    猜你喜欢
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2019-06-13
    • 1970-01-01
    • 2020-10-29
    • 2015-12-28
    • 2020-10-01
    相关资源
    最近更新 更多