我有两个相关的模型,没什么特别的
class ModelOne extends Model {
...
public function model_two() {
return this->hasMany(ModelTwo::class, 'foreign_key');
}
}
和:
class ModelTwo extends Model {
...
public function model_one() {
return this->belongsTo(ModelOne::class, 'foreign_key');
}
}
在我的get函数中,我有:
public function get() {
return ModelOne::withCount('model_two')->get();
}
我得到了很好的回应:
{
"property_one": "property_one_value",
"property_two": "property_two_value",
"property_three": "property_three_value"
"model_two_count: 5
}
但我需要的是在该计数中添加一定的数字,例如' 2',所以我想这样代替上面的json对象:
{
"property_one": "property_one_value",
"property_two": "property_two_value",
"property_three": "property_three_value"
"model_two_count: 7
}
有没有办法做到这一点?
答案 0 :(得分:1)
如果您想withCount()
执行此操作,则可以覆盖模型中的withCount()
和getRelationCountQuery
方法。
更简单的方法是使用map()
帮助程序修改集合:
public function get() {
$data = ModelOne::withCount('model_two')->get();
return $data->map(function ($i) {
$i->model_two_count = $i->model_two_count + 2;
return $i;
});
}