【发布时间】:2020-03-04 21:41:14
【问题描述】:
考虑以下场景:
两个模型从一个包中扩展而来,这些模型之间的关系在包中定义。
例如,医生和患者:
应用中的医生:
namespace App;
use SomePackage\Doctor as VendorDoctor
class Doctor extends VendorDoctor
{
(...)
}
应用程序中的患者:
namespace App;
use SomePackage\Patient as VendorPatient
class Patient extends VendorPatient
{
(...)
}
供应商包中的医生:
namespace SomePackage;
class Doctor extends Model
{
public function patients()
{
return $this->hasMany(Patient::class);
}
}
供应商包裹中的患者:
namespace SomePackage;
class Patient extends Model
{
public function doctor()
{
return $this->belongsTo(Doctor::class);
}
}
使用关系时会返回哪个模型?
示例:
$patient = \App\Patient::find($id);
$doctor = $patient->doctor;
$doctor 将是具有该模型可用功能的 App\Doctor,还是 SomePackage\Doctor?
【问题讨论】: