Laravel 5.2多对多关系反向查询空结果

时间:2016-06-20 05:14:49

标签: php mysql laravel-5

我有2个模型DfpLineItemDfpCreative

具有关系的DfpLineItem模型

    public function creatives()
    {
    return $this->belongsToMany('App\DfpCreative', 'dfp_licas', 'line_item_id', 'creative_id')
        ->withPivot('lica_data')
        ->withTimestamps();
    }

如您所见,这意味着数据透视表已经存在dfp_licas,还有一个时间戳列和lica_data列。

这部分一切都很好。当我试图从DfpLineItem模型中获取数据时,一切都很好并按预期工作。例如

此查询结果中存在

$lineItemData = DfpLineItem::findOrFail($id);个相关广告素材,我可以像$lineItemData->creatives一样访问它们。

当我尝试使用反向关系时出现问题。以下是我在DfpCreative模型中定义的关系

    public function lineItems()
    {
    return $this->belongsToMany('App\DfpLineItem', 'dfp_licas', 'creative_id', 'line_item_id')
        ->withPivot('lica_data')
        ->withTimestamps();
    }

我认为一切都是通过这种关系找到的,但是当我试图获取下面的数据时Id是硬编码的

    $orderData = DfpCreative::findOrFail(72174072858);
    dd($orderData->lineItems);

获取空结果,但多次检查,记录存在于我的dfp_licas表中。 不知道为什么会这样。

任何帮助都会受到赞赏。

由于

1 个答案:

答案 0 :(得分:0)

睡了之后,以清新的头脑找到了问题的原因。硬编码的部分$orderData = DfpCreative::findOrFail(72174072858);有一个简单的问题,72174072858增加了我的平台支持的PHP_INT_MAX,xampp为我的情况下的32位。

希望这将有助于其他人。