Php Laravel通过追加模型添加查询结果
我想在我的模型中附加一个特定的列,它是Php Laravel通过追加模型添加查询结果,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我想在我的模型中附加一个特定的列,它是返回\u count它基于一个查询。但当我执行它时,它给了我错误的结果。所有结果的值都相同。有人能帮我吗。我想我快拿到了。谢谢 模型 此查询中的计数结果 $clientCount = array(); foreach ($usersMws as $data){ $returnCount = AdminMwsReturnsEligiblesData::where('users_mws_id', $data->i
返回\u count
它基于一个查询。但当我执行它时,它给了我错误的结果。所有结果的值都相同。有人能帮我吗。我想我快拿到了。谢谢
模型
此查询中的计数结果
$clientCount = array();
foreach ($usersMws as $data){
$returnCount = AdminMwsReturnsEligiblesData::where('users_mws_id', $data->id)->count();
$clientCount[] = $returnCount;
}
dd($clientCount);
要获取属性数据,请避免使用for循环。它可能会导致滞后 试试这个代码。我将查询分为范围。和附件必须是直接的
protected $appends = [
'returns_count'
];
public function getReturnsCountAttribute(){
return AdminMwsReturnsEligiblesData::where('users_mws_id', $this->id)->count();
}
范围:
public function scopeReturnCount($query)
{
$query->select('users_mws.*')->join(
'users',
'users_mws.user_id',
'=',
'users.id'
)
->where('users.status','<>','Dumped2')
->orderBy('users_mws.mws_name','asc');
return $query;
}
模型范围的函数也可以携带附录数据。返回$clientCount看起来不正确,可能会在第一个循环后停止。我看到了sir@NigelRen,但是当我把它放在循环外时,它就不会再运行了,执行时间最多为60秒。我需要做什么?您使用的是什么版本的Laravel?它的
“Laravel/framework”:“^6.0”
sir@RwdAs Nigel Ren如上所述,移动return
语句,使其位于foreach
循环下方。感谢您的详细回答。这个也在工作。再次感谢
0 => 191
1 => 16
2 => 6
3 => 3
4 => 25
5 => 4
6 => 35
7 => 0
8 => 115
9 => 1
10 => 18
11 => 68
12 => 14
13 => 0
14 => 36
15 => 32
16 => 147
17 => 8
...
protected $appends = [
'returns_count'
];
public function getReturnsCountAttribute(){
return AdminMwsReturnsEligiblesData::where('users_mws_id', $this->id)->count();
}
public function scopeReturnCount($query)
{
$query->select('users_mws.*')->join(
'users',
'users_mws.user_id',
'=',
'users.id'
)
->where('users.status','<>','Dumped2')
->orderBy('users_mws.mws_name','asc');
return $query;
}
$users = UsersMws::returnCount()->get();