在Laravel关系中搜索第二张桌子

时间:2016-03-01 06:14:03

标签: php mysql laravel-5 eloquent

我有两张表具有多态关系。

表1是历史

id|amount|type|created_at|updated_at

表2是帐户

id|amount|name|account_number|accountable_id|accountable_type|created_at|updated_at

历史记录有会计表汇总表。 accounts表具有多态字段(可问责)

现在我在历史表中执行查询结果还包括帐户表。

问题是我想在账户表中搜索一些数据,也就是说付款人姓名在账户表中。因此,当我点击历史记录表上的查询时,我将通过付款人名称,因此它只能获取具有特定付款人姓名的帐户。

1 个答案:

答案 0 :(得分:1)

您可能需要在历史记录和帐户之间建立关系,以便按以下方式进行查询:

$histories = Histories::whereHas(
        'accounts'
        function ($query) use ($name) {
            $query->where('name', $name);
        }
    )->get();

但是您的问题并不是很清楚,而且您在所提供的有限架构中的帐户中没有名称字段,因此我无法给出更好的答案。

在这里阅读更多内容:

https://laravel.com/docs/5.1/eloquent-relationships