比方说,我有Vehicle
模型(它是Eloquent模型),它存储不同类型的车辆(在vehicles
表中)。当然,有很多不同类型的车辆,所以我举例如下:基于Eloquent模型创建后代类
class Car extends Vehicle {
}
class Bicycle extends Vehicle {
}
等等。
现在我需要找到基于车辆的对象,这里的问题。我已经添加了以下方法Vehicle
模型:
public function getClass()
{
return __NAMESPACE__ . '\\' . ucfirst($this->type)
}
这样我就可以找到类的名字,我应该使用。
但要获得有效的类唯一的办法是这样的:
$vehicle = Vehicle::findOrFail($vehicleId);
$vehicle = ($vehicle->getClass())::find($vehicleId);
,因为我需要运行2个完全相同的查询,以获得有效的最后一类对象,它是不是最好的解决方案。
有没有什么办法可以在不重复查询的情况下实现同样的功能?
他们都来自不同的桌子还是只有1个车辆表? –
它是数据库中的一个表 –