如何将更多数据附加到 laravel 8 中的模型 return

how to append more datas to a model return in laravel 8

如何将一些数据附加到 laravel 中的模型 return。

我这里有模型

 $marketingteam = marketingteam::orderby('id','desc')->paginate(15);     

我想在 $marketingteam 数组中添加更多字段

targetachived = 'value';
bonus = 'value';

这个数据是在控制器内部计算的。 所以我想在控制器中循环 $marketingteam 数据,我想添加更多数据,比如字段,我必须 return 才能查看

return view(['marketingteams' =>$marketingteam]);

我如何在 laravel

中执行此操作

我建议使用 Eloquent getters,而不是像您暗示的那样将其添加到对象中。这是在模型上完成的,因此您可以像这样访问它,而不必一直添加字段。

$marketingteam->target_achieved;

我想象你的逻辑会是什么样子,举个例子。该函数应命名为 get{your_attribute_name}Attribute.

class MarketingTeam extends Model {
    public function getTargetAchievedAttribute() {
        return $this->team_goal < $this->sales->sum('amount');
    }
}

嘿,我自己找到了答案

这是代码

 foreach ($marketingteam  as $key => $team) {
    //if you want to call another db query you can do it here and push data

    $marketingteam[$key]->totalachive = 'new value';
    $marketingteam[$key]->bonus = 'new value';
}

它将把这 2 个条目与您的所有行一起推送