123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Http\Controllers\Admin\Attributes;
- use App\Http\Controllers\Controller;
- use App\Shop\Attributes\Repositories\AttributeRepositoryInterface;
- use App\Shop\AttributeValues\AttributeValue;
- use App\Shop\AttributeValues\Repositories\AttributeValueRepository;
- use App\Shop\AttributeValues\Repositories\AttributeValueRepositoryInterface;
- use App\Shop\AttributeValues\Requests\CreateAttributeValueRequest;
- class AttributeValueController extends Controller
- {
- /**
- * @var AttributeRepositoryInterface
- */
- private $attributeRepo;
- /**
- * @var AttributeValueRepositoryInterface
- */
- private $attributeValueRepo;
- /**
- * AttributeValueController constructor.
- * @param AttributeRepositoryInterface $attributeRepository
- * @param AttributeValueRepositoryInterface $attributeValueRepository
- */
- public function __construct(
- AttributeRepositoryInterface $attributeRepository,
- AttributeValueRepositoryInterface $attributeValueRepository
- ) {
- $this->attributeRepo = $attributeRepository;
- $this->attributeValueRepo = $attributeValueRepository;
- }
- public function create($id)
- {
- return view('admin.attribute-values.create', [
- 'attribute' => $this->attributeRepo->findAttributeById($id)
- ]);
- }
- /**
- * @param CreateAttributeValueRequest $request
- * @param $id
- * @return \Illuminate\Http\RedirectResponse
- */
- public function store(CreateAttributeValueRequest $request, $id)
- {
- $attribute = $this->attributeRepo->findAttributeById($id);
- $attributeValue = new AttributeValue($request->except('_token'));
- $attributeValueRepo = new AttributeValueRepository($attributeValue);
- $attributeValueRepo->associateToAttribute($attribute);
- $request->session()->flash('message', 'Attribute value created');
- return redirect()->route('admin.attributes.show', $attribute->id);
- }
- /**
- * @param $attributeId
- * @param $attributeValueId
- * @return \Illuminate\Http\RedirectResponse
- */
- public function destroy($attributeId, $attributeValueId)
- {
- $attributeValue = $this->attributeValueRepo->findOneOrFail($attributeValueId);
- $attributeValueRepo = new AttributeValueRepository($attributeValue);
- $attributeValueRepo->dissociateFromAttribute();
- request()->session()->flash('message', 'Attribute value removed!');
- return redirect()->route('admin.attributes.show', $attributeId);
- }
- }
|