Я пытаюсь создать несколько сущностей с новой версией Sylius (1.0).Sylius - реализует Slugable и Timestampable в новом объекте
Я читаю их документы, но я немного злюсь.
Получил новый объект Book.php
.
Эта сущность есть три поля, автор, названия и содержания.
Как я могу использовать Slugable и Timestampable для этого объекта для создания двух новых полей этого объекта с помощью аннотаций?
Я пытаюсь создать интерфейс BookInterface.php
, который расширяет возможности Slugable и Timestampable интерфейсов, но, очевидно, Doctrine не отображает поля интерфейсов.
Book.php
<?php
namespace Acme\SyliusBookBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Resource\Model\ResourceInterface;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* Book
*
* @ORM\Table(name="book")
* @ORM\Entity(repositoryClass="App\SyliusBookBundle\Repository\BookRepository")
*/
class Book implements ResourceInterface
{
public function __construct()
{
$this->createdAt = new \DateTime();
}
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var int
*
* @ORM\ManyToOne(targetEntity="Sylius\Component\User\Model\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $author;
/**
* @var string
*
* @ORM\Column(name="content", type="text")
*/
private $content;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
решаемые
Использование Gedmo сущности признака работает отлично.
Gedmo\Timestampable\Traits\TimestampableEntity;
Затем использовать его на своем классе сущностей:
class Post implements ResourceInterface
{
use TimestampableEntity;
Я не знаю, Силиус, но почему бы вам просто не написать: '/ ** @var \ DateTime @Gedmo \ Timestampable (on =" update ") ... */private $ updated;' для timestamp , и '/ ** @var string @Gedmo \ Slug (fields = {" name "}) ... */private $ slug;' для slug? – lolmx
Спасибо за ваш ответ @lolmx, но я пытаюсь узнать о хороших практиках с Sylius :) –