Slug自我再生

时间:2014-07-26 20:49:20

标签: propel slug

我正在使用Propel中的sluggable行为与我的CMS / Framework一起工作。

奇怪的是,如果你改变页面上的其他内容,除了slug之外,slug将使用看似父元素的值自动重新生成,即

/slugid-3-parentid-2-keywords-null-templateid-1-publishdate-null-slug-slug-sortablerank-2-createdat-null-updatedat-null-pagei18ns-pagei18n_0-id-3-locale-en_gb-title-tsadf-description-null-content-p-ssadf-p-page-recursion-pagei18n_1-id-3-locale-fr_fr-title-a这是相当奇怪的。

到目前为止我找到的唯一解决方案是简单地将setSlug调用为随机值,然后设置正确的值。

$page->setSlug('x');
$page->setSlug($this->request->post->get('slug'));

和我的架构:

<table name="page" phpName="Page">
    <!-- Columns -->
    <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    <column name="parent_id" type="integer" required="false" />
    <column name="title" type="varchar" size="255" required="true" />
    <column name="description" type="varchar" size="255" required="false" />
    <column name="keywords" type="varchar" size="255" required="false" />
    <column name="content" type="longvarchar" required="false" />
    <column name="template_id" type="integer" required="false" />
    <column name="publish_date" type="date" required="false" />
    <!-- Behaviors -->
    <behavior name="i18n">
        <parameter name="i18n_columns" value="title, description, content" />
        <parameter name="default_locale" value="en_GB" />
    </behavior>
    <behavior name="sluggable">
        <parameter name="permanent" value="true" />
    </behavior>
    <behavior name="sortable" />
    <behavior name="timestampable" />
    <!-- Foreign Keys -->
    <foreign-key foreignTable="page_template">
        <reference local="template_id" foreign="id"/>
    </foreign-key>
    <foreign-key foreignTable="page">
        <reference local="parent_id" foreign="id"/>
    </foreign-key>
</table>

注意:我尝试过使用和不使用永久性参数。

任何想法都是谁?

0 个答案:

没有答案