我安装的 StofDoctrineExtensionsBundle 与link相同。 相比之下,页面渲染非常缓慢,因为大约5分钟。我在用户实体(FOSUSERBUNDLE)中只需要可缓慢的功能。我认为如果没有一些元素,它可以更快地工作。
使用此程序包仅运行缓存的最低配置是什么。是否需要所有映射(观看link)?
我需要 config.yml 示例。
修改 添加监听器后,我的config.yml看起来:
...
orm:
default_entity_manager: default
auto_generate_proxy_classes: "%kernel.debug%"
entity_managers:
default:
connection: default
mappings:
AppBundle: ~
gedmo_translatable:
type: annotation
prefix: Gedmo\Translatable\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
alias: GedmoTranslatable # (optional) it will default to the name set for the mapping
is_bundle: false
gedmo_translator:
type: annotation
prefix: Gedmo\Translator\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translator/Entity"
alias: GedmoTranslator # (optional) it will default to the name set for the mapping
is_bundle: false
gedmo_loggable:
type: annotation
prefix: Gedmo\Loggable\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping
is_bundle: false
gedmo_tree:
type: annotation
prefix: Gedmo\Tree\Entity
dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"
alias: GedmoTree # (optional) it will default to the name set for the mapping
is_bundle: false
...
stof_doctrine_extensions:
class:
sluggable: ~
...
我的实体与slugg:
namespace AppBundle\Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* Profile
*
* @ORM\Table(name="profile")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ProfileRepository")
*/
class Profile
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=150, nullable=true)
*/
private $name;
/**
* @Gedmo\Slug(fields={"title", "name"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
/**
* @var string
*
* @ORM\Column(name="city", type="string", length=150, nullable=true)
*/
private $city;
/**
* @var string
*
* @ORM\Column(name="voivodeship", type="string", length=50, nullable=true)
*/
private $voivodeship;
/**
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
*/
private $description;
/**
* @var string
*
* @ORM\Column(name="category", type="string", length=100, nullable=true)
*/
private $category;
/**
*
* @ORM\OneToOne(targetEntity="User", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
protected $user;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Profile
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set city
*
* @param string $city
*
* @return Profile
*/
public function setCity($city)
{
$this->city = $city;
return $this;
}
/**
* Get city
*
* @return string
*/
public function getCity()
{
return $this->city;
}
/**
* Set voivodeship
*
* @param string $voivodeship
*
* @return Profile
*/
public function setVoivodeship($voivodeship)
{
$this->voivodeship = $voivodeship;
return $this;
}
/**
* Get voivodeship
*
* @return string
*/
public function getVoivodeship()
{
return $this->voivodeship;
}
/**
* Set description
*
* @param string $description
*
* @return Profile
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* Set category
*
* @param string $category
*
* @return Profile
*/
public function setCategory($category)
{
$this->category = $category;
return $this;
}
/**
* Get category
*
* @return string
*/
public function getCategory()
{
return $this->category;
}
/**
* Set user
*
* @param \AppBundle\Entity\User $user
*
* @return Profile
*/
public function setUser(\AppBundle\Entity\User $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \AppBundle\Entity\User
*/
public function getUser()
{
return $this->user;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
}
现在网站没有生成。刷新数据库,没有任何帮助
答案 0 :(得分:1)
您只需要激活可缓冲的侦听器:
# app/config/config.yml
stof_doctrine_extensions:
class:
sluggable: ~
创建你的slug属性:
<?php
namespace Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="articles")
* @ORM\Entity
*/
class Entity
{
...
/**
* @Gedmo\Slug(fields={"username"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
...
}
答案 1 :(得分:1)
我已经修改了Alsatian的答案中的听众定义,现在它正在运作。
# app/config/config.yml
stof_doctrine_extensions:
default_locale: en
orm:
default:
tree: false
timestampable: false
sluggable: true
translatable: false