使用Laravels Eloquent与数据库视图

时间:2016-04-20 17:45:28

标签: php mysql laravel eloquent views

我有两个数据库表,费用收入,我创建了一个MySQL视图,交易,它基本上是两者之间的UNION表,选择我感兴趣的字段。

交易视图包含以下列:

  • 的transaction_id
  • USER_ID
  • 金额
  • 注释
  • TRANSACTION_TYPE
  • 的updated_at
  • created_at

我为视图创建了一个Eloquent Model,称为Transactions。

问题在于我想根据特定条件检索交易。 例如。我想获得用户的所有交易。通常,如果事务是一个表,我会定义一个外键关系,我只需要调用$user->hasMany('App\Models\Transaction')

由于视图无法使用外键,我尝试使用'where'方法:Transaction::where('user_id', $user->id)。此查询不会返回任何内容,也不会返回我测试的任何其他查询。返回数据的唯一方法是Transaction::all(),但这对我没什么帮助。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

对于Eloquent中的where语句,你必须以get结束,试试这个:

$transactions = Transaction::where('user_id', $user->id)->get();