【问题标题】:Return result set based on result from joined table根据连接表的结果返回结果集
【发布时间】:2015-04-14 00:58:52
【问题描述】:

我正在 Laravel 4 上构建一个类似网络商店的应用程序,但在构建查询时遇到了一些困难。我想返回一个有活跃库存的产品列表。

每件库存都作为自己的一组数据列出,因为我出售的商品(门票)都附有唯一的代码,所以我想知道哪些代码已售出,哪些未售出。

我希望能够计算有多少票仍未售出,并且仅在票组还有待售票时才将票组列为活动。

我打算通过我的 Products 模型进行静态查询,该模型返回每个产品,然后执行查询以返回它们拥有的所有代码,但它似乎很啰嗦,我确信 laravel 有办法返回结果集基于内部查询。我只是不确定我会如何做到这一点..

希望这是有道理的,我基本上想要一种快速有效的方法来检查产品库存水平,方法是查询活动产品,然后查询他们的活动门票库存。


一些代码sn-ps

// Check if the code is active
    public function scopeActive($query) {
        return $query->where('active', '=', 1);
    }
// Relationship to product
public function product() {
    return $this->belongsTo('Product', 'product_id', 'id');
}

我希望能够使用有效代码获取所有产品,所以我猜 $product->codes->product 因为我们正在检查每个产品是否有活动代码,然后通过它们使用产品对象?

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    我的描述可能不是很清楚,但我发现我可以通过按 product_id 对结果集进行分组来做我想做的事

    最后我做到了

    return  ProductCode::where('active', '=', 1)
                ->groupBy('product_id')
                ->get();
    

    希望这可能对正在寻找的人有所帮助 - 这不是最有效的方法,但它有效..

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2012-03-26
      • 2020-11-20
      • 2017-08-28
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      相关资源
      最近更新 更多