【问题标题】:Anonymous types alternative in EloquentEloquent 中的匿名类型替代方案
【发布时间】:2016-04-21 21:33:25
【问题描述】:

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

类似这样的伪代码。

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

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

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    如果要将其添加到所有 Job 模型实例中:

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

    这样你就可以调用Job::find($id)->newprop;,它会执行那个函数。这里有描述https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators

    【讨论】:

    • 如果我使用 Job::find($id)->new prop 显式调用 getNewpropAttribute 访问器,这将有效;如果我只是收集一些工作并使用 json 将它们发送到前端呢?如在,我怎样才能让它创建一个employee_count属性,并在每个工作对象上设置正确的计数。
    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多