将 Laravels Eloquent 与数据库视图一起使用

Using Laravels Eloquent with database views

我有两个数据库 tables,expensesincomes 我创建了一个 MySQL 视图, 事务,基本上是两个table之间的联合,选择我感兴趣的字段。

交易 视图包含以下列:

我为视图创建了一个 Eloquent 模型,称为事务。

问题是当我想根据特定条件检索交易时。 例如。我想获取用户的所有交易。通常,如果事务是 table,我会定义一个外键关系,我会简单地调用 $user->hasMany('App\Models\Transaction').

由于视图无法使用外键,我尝试使用 'where' 方法:Transaction::where('user_id', $user->id)。这个查询没有 return 任何东西,我测试过的任何其他查询也没有。 returned 数据的唯一方法是 Transaction::all(),但这对我帮助不大。

我做错了什么?

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

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