WIP
This commit is contained in:
@@ -46,7 +46,7 @@ class FilterController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($this->shouldFilterByCollection()) {
|
if ($this->shouldFilterByCollection()) {
|
||||||
return $this->categoriesFor();
|
return $this->categoriesFor($this->request->collection_id, 'collection');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->shouldFilterByBrand()) {
|
if ($this->shouldFilterByBrand()) {
|
||||||
@@ -54,7 +54,7 @@ class FilterController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($this->shouldFilterByChannel()) {
|
if ($this->shouldFilterByChannel()) {
|
||||||
return $this->filterByCategoryResource(Channel::find($this->request->channel_id));
|
return $this->filterByCategoryResource($this->request->channel_id, 'category');
|
||||||
}
|
}
|
||||||
|
|
||||||
return Category::query()->where('is_visible', true)->ordered()->get(['id', 'parent_id', 'name']);
|
return Category::query()->where('is_visible', true)->ordered()->get(['id', 'parent_id', 'name']);
|
||||||
@@ -115,20 +115,20 @@ class FilterController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Categories for a resource
|
* Categories for a resource
|
||||||
*/
|
*/
|
||||||
private function categoriesFor($resource)
|
private function categoriesFor(int $id, string $type)
|
||||||
{
|
{
|
||||||
return DB::table('categories as c')
|
return DB::table('categories as c')
|
||||||
->select('c.id', 'c.parent_id', 'c.name')
|
->select('c.id', 'c.parent_id', 'c.name')
|
||||||
->where('c.is_visible', true)
|
->where('c.is_visible', true)
|
||||||
->whereExists(function ($query) {
|
->whereExists(function ($query) use ($id, $type) {
|
||||||
$query->select(DB::raw(1))
|
$query->select(DB::raw(1))
|
||||||
->from('product_has_relations as phr_cat')
|
->from('product_has_relations as phr_cat')
|
||||||
->join('products as p', 'p.id', '=', 'phr_cat.product_id')
|
->join('products as p', 'p.id', '=', 'phr_cat.product_id')
|
||||||
->join('product_has_relations as phr_chan', 'phr_chan.product_id', '=', 'p.id')
|
->join('product_has_relations as phr_chan', 'phr_chan.product_id', '=', 'p.id')
|
||||||
->whereColumn('phr_cat.productable_id', 'c.id')
|
->whereColumn('phr_cat.productable_id', 'c.id')
|
||||||
->where('phr_cat.productable_type', 'category')
|
->where('phr_cat.productable_type', 'category')
|
||||||
->where('phr_chan.productable_type', 'channel')
|
->where('phr_chan.productable_type', $type)
|
||||||
->where('phr_chan.productable_id', 6)
|
->where('phr_chan.productable_id', $id)
|
||||||
->where('p.is_visible', true)
|
->where('p.is_visible', true)
|
||||||
->whereNull('p.parent_id')
|
->whereNull('p.parent_id')
|
||||||
->where('p.stock', '>', 0);
|
->where('p.stock', '>', 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user