首页 文章

使用Laravels Eloquent与数据库视图

提问于
浏览
1

我有两个数据库表, expensesincomes ,我创建了一个MySQL视图, transactions ,它基本上是两个表之间的UNION,选择我感兴趣的字段 .

transactions 视图包含以下列:

  • 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 回答

  • 3

    对于Eloquent中的where语句,你最终必须得到get,试试这个:

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

相关问题