【发布时间】:2016-04-07 16:37:21
【问题描述】:
我想获得一个有关系的总用户交易(特定用户)。 我已经做到了,但我很好奇我的方法是好方法。
//User Model
public function Transaction()
{
return $this->hasMany(Transaction::class);
}
//Merchant Model
public function Transaction()
{
return $this->hasMany(Transaction::class);
}
public function countTransaction()
{
return $this->hasOne(Transaction::class)
->where('user_id', Request::get('user_id'))
->groupBy('merchant_id');
}
public function getCountTransactionAttribute()
{
if ($this->relationLoaded('countTransaction'))
$this->load('countTransaction');
$related = $this->getRelation('countTransaction');
return ($related) ? (int)$related->total_transaction : 0;
}
//controller
$merchant = Merchant::with('countTransaction')->get();
让我好奇的是countTransaction 内部的一部分。我将where where('user_id', Request::get('user_id')) 直接放在模型中。
这是获得特定方式的好方法还是其他任何方式?
预期结果:
"merchant:"{
"name": "example"
"username" : "example"
"transactions": {
"count_transactions: "4" //4 came from a specific user.
}
}
我需要获取带有特定用户交易计数的商家数据。此查询基于登录用户。因此,当user 访问商家页面时,他们可以看到该商家的交易计数。
谢谢。
【问题讨论】:
-
Merchant是您的用户吗?或者你有实际的User模型吗? -
我有一个实际用户。 3 表。用户、商家和交易
-
所以
User也有hasMany交易? -
是的。用户有很多交易
-
您是否只想计算特定用户的交易次数?我试图了解
Merchant是如何参与其中的。
标签: php laravel eloquent relationship