在Laravel中,我有两个模型Man
和Car
,而Car
模型有一个外键man_id
。
现在我想检查一下Car
是否有所有者,所以我可以这样做。
if($car->man != null)
我也可以这样做:
if($car->man_id != null)
但我不喜欢这个解决方案..。
但是以这种方式,Laravel做一个查询来检查Man
是否存在,有什么方法可以避免这个无用的查询吗?
发布于 2018-03-07 03:40:38
您可以在Car
模型上创建一个检查其所有者的新函数。
Car.php
class Car extends Model {
public function hasOwner()
{
return empty($this->man_id); // returns boolean
}
}
然后,你就可以
$car = Car::first();
if ($car->hasOwner()) { ... }
更新:
您还可以使用存在()方法。
$car->man()->exists(); // bool: true if there is at least one row
从Laravel5.5或更高版本开始,您还可以使用doesntExist()来确定当前查询是否不存在行。
$car->man()->doesntExist(); // bool: true if no row exists
https://stackoverflow.com/questions/49150579
复制相似问题