如何在laravel 8中向模型返回添加更多数据



如何在laravel中将一些数据附加到模型返回中。

我这里有一个型号

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

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

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

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

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个条目与您的所有行

最新更新