- Install bundle
composer require ruspanzer/loggable-bundle - Implement
Ruspanzer\LoggableBundle\Entity\Interfaces\LoggableInterfacefor you entity - If you need set relations between two loggable entities, use
getRelatedLogEntitiesin related entity. This method must be return array ofLoggableInterfaceentities. It will allow search related logs when searching main entity - Find logs with repository method getByObject(). Or you can write your search implementation with pagination and other cool features :-)
class Place implements LoggableInterface
{
/**
* @ORM\Id()
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Address")
*/
private $address;
public function getId()
{
return $this->id;
}
public function getRelatedLogEntities()
{
return [];
}
}
class Address implements LoggableInterface
{
/**
* @ORM\Id()
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Place")
* @ORM\JoinColumn(name="place_id")
*/
private $place;
public function getId()
{
return $this->id;
}
public function getPlace()
{
return $this->place;
}
public function getRelatedLogEntities()
{
return [
$this->getPlace();
];
}
}
If you will be search logs by Place, Address logs to be returned
This bundle also working with StofDoctrineExtensions Softdeleteable