将 Laravels Eloquent 与数据库视图一起使用
Using Laravels Eloquent with database views
我有两个数据库 tables,expenses 和 incomes 我创建了一个 MySQL 视图, 事务,基本上是两个table之间的联合,选择我感兴趣的字段。
交易 视图包含以下列:
- transaction_id
- user_id
- 数量
- 注意
- transaction_type
- updated_at
- created_at
我为视图创建了一个 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();
我有两个数据库 tables,expenses 和 incomes 我创建了一个 MySQL 视图, 事务,基本上是两个table之间的联合,选择我感兴趣的字段。
交易 视图包含以下列:
- transaction_id
- user_id
- 数量
- 注意
- transaction_type
- updated_at
- created_at
我为视图创建了一个 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();