Я работаю с: + Symfony 4.4 (lts) + API Platform 2.5 (текущая версия)
И я пытаюсь переопределить операцию удаления, чтобы сущность не всегда удалялась Я должен проверить, использовалась ли сущность в качестве внешнего ключа с другой сущностью, поэтому в этом случае я не удаляю, я просто устанавливаю свойство flag моей сущности на false, если нет, я удаляю сущность.
Но проблема в документах по платформе API, переопределение операции - просто изменение сущности до ее сохранения.
src / Entity / Product:
/**
* @ApiResource(
* itemOperations={
* "get",
* "delete"={
* "controller"=ProductDeleteAction::class,
* }
* })
*/
class Product
{
//...
}
src / Controller / ProductDeleteAction
class ProductDeleteAction
{
private $manager;
public function __construct(EntityManagerInterface $manager)
{
$this->manager= $manager;
}
public function __invoke(Product $product): Product
{
$categories = $this->manager->getDoctrine()
->getRepository(Categorie::class)->findBy('product',$product);
if(count($categories)){
$product->setActive(false);
return $product;
//I want that the product been persisted But the product is deleted finallay because it's delete operation :(
}else{
return $product;
}
}
}