Doctrine gedmo ako zapnut Sluggable?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

Caute neviete ako rozchodit Sluggable Treba nejako a ak ano tak ako zpnut ten Listener?
ja mam zatial toto:

	/**
	 * @Gedmo\Slug(fields={"title"})
	 * @ORM\Column(name="slug", type="string", length=255)
	 */
	private $slug;

ale slug mi to negeneruje.

David Matějka
Moderator | 6445
+
+1
-

Zkus ten sluggable listener registrovat jako sluzbu a pridat tomu kdyby.subscriber tag

duskohu
Člen | 778
+
0
-

pouzivam: https://github.com/rixxi/gedmo
skusil som:

gedmo:
	tree: on
	sluggable: on

aj:

services:
	-
		class: \Gedmo\Sluggable\SluggableListener
		tags: [kdyby.subscriber]

ale nepomohlo

duskohu
Člen | 778
+
0
-

Uz funguje :-) dik

duskohu
Člen | 778
+
0
-

Este by som sa chcel opytat, ci niekto riesil slugable v tree, ide mi o to ze chcem generovat slug na zaklade slugu rodica a title aktualnej entity, napr: roo/sub1/item1, v podstate sa mi to podarilo pomocou SlugHandler, v com je problem je to ze neviem ako, a ci vobec sa to da ked zmenim rodica, tak potrebujem aby zmenilo slug aj potomkov. Riesil to niekto?

/**
 * @Gedmo\Tree(type="nested")
 * @ORM\Table(name="pages")
 * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
 */
class Page
{
....

	/**
	 * @Gedmo\TreeParent
	 * @ORM\ManyToOne(targetEntity="Page", inversedBy="children")
	 * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
	 * @var int
	 */
	private $parent;

	/**
	 * @ORM\OneToMany(targetEntity="Page", mappedBy="parent")
	 * @ORM\OrderBy({"lft" = "ASC"})
	 * @var int
	 */
	private $children;


	/**
	 * @Gedmo\Slug(handlers={
	 *      @Gedmo\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options={
	 *          @Gedmo\SlugHandlerOption(name="relationField", value="parent"),
	 *          @Gedmo\SlugHandlerOption(name="relationSlugField", value="slug"),
	 *          @Gedmo\SlugHandlerOption(name="separator", value="/")
	 *      })
	 * }, separator="-", updatable=true, fields={"title"})
	 * @ORM\Column(name="slug", type="string", length=255, unique=true)
	 */
	private $slug;

}

Editoval duskohu (22. 9. 2014 20:01)

akadlec
Člen | 1326
+
0
-

a proč ten slug ve stromu neřešíš až na konci? Když jej budeš vykreslovat tak budeš vědět co máš za parenta a co má parent za parenta. Já to takto předtím řešil

duskohu
Člen | 778
+
0
-

no lebo ten slug bude url path, a ked budem generovat nejake velke menu alebo overovat routu, tak nechcem prechadat vsetkym ale na zaklade url vyberiem konkretnu page

duskohu
Člen | 778
+
0
-

tak som to vyriesil:

	/**
	 * @Gedmo\Slug(handlers={
	 *      @Gedmo\SlugHandler(class="Gedmo\Sluggable\Handler\TreeSlugHandler", options={
	 *          @Gedmo\SlugHandlerOption(name="parentRelationField", value="parent"),
	 *          @Gedmo\SlugHandlerOption(name="separator", value="/")
	 *      })
	 * }, fields={"title"})
	 * @ORM\Column(name="slug", type="string", length=255, unique=true)
	 */
	private $slug;
akadlec
Člen | 1326
+
0
-

Hele funguje ti to poslední řešení? Teď nad tím taky laboruju a když edituju parenta tak se jeho potomci resp jejich slugy neupravi :(

duskohu
Člen | 778
+
0
-

Cau, nakoniec, som to vzdal, urobil som to tak ze pouzivam Tree ale na path som si urobil svoj TreePathListener ktory mi generuje a meni path na zaklade stromu. Ten slugable mi tiez pracoval nejako divne. Keby si mal zaujem o ten moj Listener vim posunut dalej

akadlec
Člen | 1326
+
0
-

No mě ten Gedmo listener nefunguje, když změním parenta tak se to na potomcích neprovede :( takže buď nejede ten listener nebo nevim. Tys to vyřešil vlastním listenerem přes gedmo či kdyby\events?

duskohu
Člen | 778
+
0
-

No mne to nejako slo, ale ten slug generoalo nejako divne. Ja to mam takto:
definicia column v entite
anotacia
TreePathListener
neon