【问题标题】:Laravel Eloquent get data from second level tableLaravel Eloquent 从二级表中获取数据
【发布时间】:2016-09-09 05:10:36
【问题描述】:

我有桌子:operationsremarksadjustments

operations:

| id  | user_id  |  operation   |  start_date |  end_date   |
|  1  |     2    |  opeartion1  |    1/1/16   |   5/5/16    |
|  2  |     2    |  opeartion2  |    1/1/16   |   5/5/16    |

remarks:

|  id  |  user_id  |  operation_id  |    remarks    |
|  10  |     4     |       1        |  remarks1 new | 
|  13  |     4     |       2        |  remarks22new |

adjustments:

| id | remarks_id | user_id |         before         |             after            |      created_at     |      updated_at     |
|:--:|:----------:|:-------:|:----------------------:|:----------------------------:|:-------------------:|:-------------------:|
|  1 |     10     |    6    | {"remarks":"remarks1"} | | {"remarks":"remarks1 new"} | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
|  2 |     13     |    7    | {"remarks":"remarks1"} | | {"remarks":"remarks1 new"} | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |

我想在Operation 控制器的show() 方法中从adjustments 表中获取特定operation_id 的数据:

$history = Adjustment::with('user','remark')->get();

从这里我得到来自adjustments 表的所有行,如下所示:

Jerry Nienow 2016-05-12 07:00:24 {"remarks":"remarks1"} {"remarks":"remarks1 new"}
Jerry Nienow 2016-05-12 07:01:09 {"remarks":"remarks22"} {"remarks":"remarks22new"}

但我想要一个特定的operation_id,像这样:

Jerry Nienow 2016-05-12 07:00:24 {"remarks":"remarks1"} {"remarks":"remarks1 new"}

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    只需加入remarks 表并使用此$operationId 获取结果:

    Adjustment::join('remarks', 'remarks.id','=', 'adjusments.remarks_id')->where('remarks.operation_id', '=', $operationId)->get();
    

    你应该先设置$operationId

    【讨论】:

    • :) :) :) 如果你是 laravel 方面的专家,也请回答这个问题Question 1
    • @Ivanko Todorova 等待您的答复 :( QQ
    猜你喜欢
    • 2017-10-18
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多