EntityAttributeController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\Eav\Controller;
  4. use SixShop\Core\Request;
  5. use SixShop\Eav\Entity\EavAttributeEntity;
  6. use SixShop\Eav\Entity\EavValueEntity;
  7. use think\Response;
  8. use function SixShop\Core\success_response;
  9. class EntityAttributeController
  10. {
  11. public function index(Request $request, EavAttributeEntity $entity): Response
  12. {
  13. $entityTypeID = $request->get('entity_type_id/d');
  14. return success_response($entity->where('entity_type_id', $entityTypeID)->select());
  15. }
  16. public function save(Request $request, EavAttributeEntity $entity): Response
  17. {
  18. $data = $request->post();
  19. $entityObject = $entity->withTrashed()->where([
  20. 'entity_type_id' => $data['entity_type_id'],
  21. 'attribute_code' => $data['attribute_code'
  22. ]])->findOrEmpty();
  23. if (!$entityObject->isEmpty()) {
  24. $entityObject->restore();
  25. $data['id'] = $entityObject['id'];
  26. }
  27. return success_response($entityObject->save($data));
  28. }
  29. public function update(int $id, Request $request, EavAttributeEntity $entity): Response
  30. {
  31. $data = $request->post();
  32. return success_response($entity->where('id', $id)->update($data));
  33. }
  34. public function delete(int $id, EavAttributeEntity $entity, EavValueEntity $entityValue): Response
  35. {
  36. $entity->destroy($id);
  37. $entityValue->where('attribute_id', $id)->delete();
  38. return success_response();
  39. }
  40. }