WIP
This commit is contained in:
parent
3179e59daf
commit
70851b5acb
2 changed files with 32 additions and 1 deletions
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Http\Livewire;
|
||||
|
||||
use App\Models\Profession;
|
||||
use App\Models\CharacterProfession;
|
||||
use App\Models\Recipe;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -29,6 +30,13 @@ class Recipes extends Component
|
|||
*/
|
||||
public string $profession = '';
|
||||
|
||||
/**
|
||||
* Filter by profession specialization.
|
||||
*/
|
||||
public string $specialization = '';
|
||||
|
||||
public array $specialization_options = [];
|
||||
|
||||
/**
|
||||
* Filter by crafter
|
||||
*/
|
||||
|
|
@ -51,6 +59,22 @@ class Recipes extends Component
|
|||
->toArray();
|
||||
}
|
||||
|
||||
public function updatedProfession($value)
|
||||
{
|
||||
$options = CharacterProfession::query()
|
||||
->with(['profession', 'specialization'])
|
||||
->whereHas('profession', function ($q) use ($value) {
|
||||
$q->where('name', $value);
|
||||
})
|
||||
->get()
|
||||
->pluck('specialization.name', 'specialization.slug')
|
||||
->unique();
|
||||
|
||||
$this->specialization_options = collect(['' => '-- All --'])
|
||||
->merge($options)
|
||||
->toArray();
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
$query = Recipe::select('recipes.*')
|
||||
|
|
@ -74,6 +98,12 @@ class Recipes extends Component
|
|||
$query->whereHas('profession', function ($q) {
|
||||
$q->where('name', Str::ucfirst($this->profession));
|
||||
});
|
||||
|
||||
if (strlen($this->specialization)) {
|
||||
$query->whereHas('crafters.professions.specialization', function ($q) {
|
||||
$q->where('slug', $this->specialization);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Filter by crafter
|
||||
|
|
|
|||
Reference in a new issue