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