【问题标题】:Shop with two items购买两件商品
【发布时间】:2014-11-05 03:57:50
【问题描述】:

我有两个模型。 ShopItem。我正在尝试检索所有商店,每个商店有 2 件物品 - 但是,我无法让它工作。 $shop['items'] 的值没有变化。

foreach($shops as &$shop) {
    foreach($shop->items as $item) {
        $item->formatPreview();
    }

    $shop = $shop->toArray();

    $shop['items'] = array_slice($shop['items'], 2); 
}

我怎样才能做到这一点,有没有使用 Eloquent 的更聪明的方法?

【问题讨论】:

  • ShopItem是什么关系?如果hasMany 那么这就是你需要的:softonsofa.com/…

标签: php laravel orm laravel-4 eloquent


【解决方案1】:

已编辑

$shops = Shop::with('items')->get();

foreach ($shops as $shop) {
    echo 'shop name: '. $shop->name . '<br>';
        if($shop->items()->count()) {
            foreach ($shop->items()->take(2)->get() as $item) {
                echo 'item: ' . $item->name . '<br>';
            }
        }
    echo '<hr>';
} 

我在一个路由关闭中测试这个,所以请按照你的需要格式化它。希望它现在可以正常工作。

【讨论】:

  • 这样做时,我总共只得到两件商品(不是每家商店两件)
  • 这将输出正确的项目,但问题是删除了多余的项目
  • 额外物品是什么意思?
  • 如果我们假设 Shop 有 10 个项目,我只想要前 2 个。
  • 上面的代码是这样的:shop 1: - item 1 - item 2 shop 2: - item xpto - item foo etc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
相关资源
最近更新 更多