在Laravel中我有2个模型Man
和Car
,Car
模型有一个外键man_id
。
现在我想检查Car
是否有所有者,所以我可以做
if($car->man != null)
我也可以这样做:
if($car->man_id != null)
但我不喜欢这个解决方案...
但是通过这种方式,Laravel会查询是否存在Man
,是否有办法避免这种无用的查询?
答案 0 :(得分:0)
您可以在Car
模型上创建一个新功能,以检查其所有者。
Car.php
class Car extends Model {
public function hasOwner()
{
return empty($this->man_id); // returns boolean
}
}
然后,你可以做到
$car = Car::first();
if ($car->hasOwner()) { ... }
更新:
您还可以使用exists()方法
$car->man()->exists(); // bool: true if there is at least one row
从Laravel 5.5或更高版本开始,您还可以使用doesntExist()来确定当前查询中是否没有行。
$car->man()->doesntExist(); // bool: true if no row exists