File: /home/armgroup/libs/app/Http/Livewire/Frontend/Product/OptionSingle.php
<?php
namespace App\Http\Livewire\Frontend\Product;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Option;
use App\Models\OptionProduct;
use App\Models\OptionValue;
use Livewire\Component;
class OptionSingle extends Component
{
use ConvertEmptyStringsToNull, General;
public $productId;
public $option;
public $optionValues;
public $value_id;
public function mount()
{
$optionProducts = OptionProduct::query()
->where('product_id', $this->productId)
->get(['option_id', 'value_id']);
if (count($optionProducts)) {
$first = $optionProducts->first();
$this->value_id = $first->value_id;
$this->option = Option::find($first->option_id);
$this->optionValues = OptionValue::whereIn('id', $optionProducts->pluck('value_id')->toArray())->get();
}
}
public function render()
{
return view('livewire.frontend.product.option-single');
}
public function updatedValueId($value)
{
$this->emit('optionChanged', $this->option->id, $value);
}
}