laravel5-如何隐藏withPivot的特定列?

时间:2016-04-16 04:35:03

标签: mysql json laravel-5

我使用belongsstomany函数来获取模型,并使用withPivot()在数据透视表中获取额外的列数据。但是,withPivot()函数将在输出json中添加2个外键。我想要隐藏这些键,只显示我想要显示的列。

以下是我的回复数据

{"status_code":"1","next_page":"2","dataset":[{"id":"829","req_start_time":"2016-03-13 14:55:00","req_end_time":"2016-03-13 09:55:00","content":[{"name":"\u9752\u6912\u7092\u725b\u8089","price":"120","pic_url":"","detail":"\u8d85\u7ea7\u597d\u5403\u7684\u54df","pivot":{"waiter_request_id":"829","goods_id":"2","count":"2"}}

如您所见,pivot json对象包含两个id键。 我怎么能从对象中删除它们?或者其他一些解决方法可以正确地解决这个问题吗?

提前thx!

现在问题已经升级了!

如何在属于'content'的对象中添加pivot的'count'参数

1 个答案:

答案 0 :(得分:0)

最后,我想出了解决这个问题的正确方法。掌握代码:

class Goods extends Model{
     ......
     ......

     public function newPivot(Model $parent, array $attributes, $table, $exists)
{
    $pivot = new Pivot($parent, $attributes, $table, $exists);
    $pivot->addHidden(
        array(
            'waiter_request_id',
            'goods_id'
        )
    );
    return $pivot;
}
}

您可以重写此方法,以便在' belongsToMany'

中为模型提供新的数据透视对象