我目前正在构建一个 Laravel nova 应用程序。我希望能够通过继承映射实现类似于 Doctrine 可以做的事情。
让我们假设以下示例:
use Illuminate\Database\Eloquent\Model;
class Event extends Model {
protected $attributes = [
'name' => null,
'starts_at' => null,
'ends_at' => null,
];
}
class EventTypeA extends Event {
// has extra fields specific to EventTypeA
}
class EventTypeB extends Event {
// has extra fields specific to EventTypeB
}
现在我希望能够:
获取所有EventTypeA
的
获取所有EventTypeB
的
获取所有事件并只关心共享信息。
当然,对于上面的列表,所有 Eloquent 的优点,例如过滤、投影等都应该适用。
据我所知laravel可能能够汉勒EventTypeA
和EventTypeB
正确但是Event
不得不需要从两个表是不是真的有可能获取数据。
我知道 eloquent 的变形功能,但是根据我的理解,这会导致Event
核心数据和后代特定属性的单独 nova 视图。这在用户体验方面是不可接受的。
我考虑过使用一个接口Event
,EventTypeA
然后EventTypeB
将其实现。但是,我认为这将需要大量的体力劳动才能让 Eloquent 对事件做一些有意义的事情。
这听起来像是一个常见问题,但是我无法找到有关如何在 laravel 中以正确方式执行此操作的任何资源(尤其是 nova 可以解决此问题)。
猛跑小猪
慕雪6442864