【发布时间】:2015-01-13 17:39:16
【问题描述】:
我认为有 2 个循环:
@foreach($products as $product)
...
@foreach($product->pricesOrder() as $price)
...
@endforeach
...
@endforeach
我的 Product 模型中的 pricesOrder() 范围如下:
public function scopePricesOrder($query)
{
$product = $query->first();
$prices = Price::join('sites as site', 'site.id', '=', 'prices.site_id')
->orderBy('site.order', 'asc')
->select('prices.*')
->where('product_id', $product->id)
->get();
}
我遇到的问题是传递给范围的查询是所有产品,而不是单个产品。
或者至少我认为这是正在发生的事情,因为循环的结果是所有行输出都完全相同,即第一行的内容,这意味着范围总是被发送相同的 productID。即使每个产品 ID 不同且不重复。
我曾假设因为在 $product 上调用了 pricesOrder(),所以它只会打赌获取该单个产品的查询。不是所有的人。
在范围内运行 dd($product); 将返回所有产品,而不是当前产品。
【问题讨论】:
标签: laravel laravel-4 eloquent