通过构建股票投资组合应用程序学习Laravel。为用户,账户,股票,期权和交易提供模型。我相信我有正确的关系。Laravel 5.1查询关系
问题是我如何获得用户 - >帐户 - >交易。我确信我可以在查询构建器中做一些事情,但我希望能有更多的“雄辩”方法。
用户
public function accounts()
{
return $this->hasMany('App\Account');
}
public function stocks()
{
return $this->belongsToMany('App\Stock');
}
public function options()
{
return $this->belongsToMany('App\Option');
}
public function transactions()
{
return $this->hasMany('App\Transaction');
}
帐户
class Account extends Model
{
protected $fillable =
[
'name',
'broker'
];
public function user()
{
return $this->belongsTo('App\User');
}
public function stocks()
{
return $this->belongsToMany('App\Stock');
}
public function options()
{
return $this->belongsToMany('App\Option');
}
public function transactions()
{
return $this->hasMany('App\Transaction');
}
交易
class Transaction extends Model
{
protected $fillable =
[
'type',
'account_id',
'transaction_date',
'quantity',
'stock_id',
'option_id',
'amount',
'description'
];
public function user()
{
return $this->belongsTo('App\User');
}
public function stock()
{
return $this->belongsTo('App\Stock');
}
public function option()
{
return $this->belongsTo('App\Option');
}
public function account()
{
return $this->belongsTo('App\Account');
}
public function accounts()
{
return $this->hasManyThrough('App\Account', 'App\User');
}
}
最后,我想我要寻找每个总额帐户的用户可以拥有。 (用户可以有很多账户,每个账户都有很多交易,股票和期权。)
感谢您的帮助,或者至少让我知道我是否会走向正确的道路!
好像查询生成器的方法是要走的路。否则,您将最终将每个“Transaction”对象加载到内存中,而您真正需要的只是每个帐户的总值。 – alexw
我有点害怕。这个想法是让一个页面列出所有用户单独的账户和一个余额,然后点击账户打开列出所有交易的页面。同一个特定的股票。您可以看到一个用户的股票总量,然后按账户分割,然后在每个个人账户中分离涉及该股票的交易清单。 – BrioDev