<?php
namespace App\Http\Livewire;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use Modules\CourseSetting\Entities\Category;
use Modules\OrgInstructorPolicy\Entities\OrgPolicyCategory;
class ShowCategory extends Component
{
protected $category, $categoryCode;
public $codes = [];
protected $listeners = ['checkCategory'];
public function checkCategory($codes)
{
$this->codes = $codes;
}
public function categoryFilter($category_id)
{
$this->emit('addCategoryFilter', $category_id);
}
public function render()
{
if (Auth::check() && Auth::user()->role_id == 1) {
$categories = Category::where('parent_id', null)->orderBy('name', 'asc')->get();
} else {
$policy_id = Auth::user()->policy_id;
$assign = OrgPolicyCategory::where('policy_id', $policy_id)->pluck('category_id')->toArray();
$categories = Category::whereIn('id', $assign)->orderBy('name', 'asc')->get();
foreach ($categories as $category) {
if (count($categories->where('id', $category->parent_id)) == 0) {
$category->parent_id = 0;
}
}
}
return view('livewire.show-category', [
'categories' => $categories
]);
}
}