我有两个数据库表,支出和收入,我创建了一个MySQL视图,transactions基本上是两个表之间的UNION,选择我感兴趣的字段。
事务视图包含以下列:
- transaction_id
- user_id
- 金额
- 注释
- 事务类型
- 更新日期
- 创建日期
我为视图创建了一个Eloquent模型,名为Transactions。
问题是当我想根据某些条件检索事务时。例如,我想获取用户的所有交易。通常,如果事务是一个表,我会定义一个外键关系,然后简单地调用$user->hasMany('App'Models'Transaction')
。
由于视图不可能使用外键,我尝试使用"where"方法:Transaction::where('user_id', $user->id)
。这个查询不返回任何内容,我测试的任何其他查询也不返回。唯一返回数据的方法是Transaction::all()
,但这对我没有太大帮助。
我做错了什么?
对于Eloquent中的where语句,您必须以get结束,请尝试以下操作:
$transactions = Transaction::where('user_id', $user->id)->get();