比方說,我有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個車輛表? –
它是數據庫中的一個表 –