匿名类型在Eloquent中替代

时间:2016-04-21 10:53:26

标签: laravel eloquent

有没有办法可以构建一个查询,它不仅会返回模型/表上的现有实体,还会创建根据函数/查询填充的新变量。全部在一个查询中完成。

就像这样的伪代码。

Job::whereDate('created_at', '>=', $pdate)
    ->with('address')
    ->with('Employees'->count() as newprop);

基本上我想获得作业,地址并在集合中返回的对象上创建一个新属性,该属性将保存每个作业的员工数。 解决这个问题的最佳方式是什么?也许我应该在Job模型上创建一个返回Employees计数的新函数/属性?这是否意味着应用程序将进行更多的数据库查询,或者在我使用eloquent获取任何Job对象时是否会填充此类属性?

1 个答案:

答案 0 :(得分:1)

如果要将其添加到所有作业模型实例:

public function getNewpropAttribute($value) {
    return count($employees);
}

这样你就可以调用Job::find($id)->newprop;并执行该功能。这里描述了https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators