How to use Yii2 Sluggable Behavior?(如何使用 Yii2 Sluggable Behavior?)
问题描述
我已按照文档说明定义了此行为.
I have defined this behavior as per documentation instructions.
在我的配置 url 管理器中,我定义了这样的自定义规则:example.com/article/1
In my config url manager I have defined custom rule like this: example.com/article/1
我的查看操作是:
在我的索引视图文件中,我生成 URL 来查看这样的操作: Url::to(['article/view', 'id' => $model->id, 'slug' => $model->slug])
In my index view file I am generating URL to view action like this : Url::to(['article/view', 'id' => $model->id, 'slug' => $model->slug])
我想像这样在 url 中输出我的文章标题:example.com/article/1/My-first-post
I would like to output my article title in url like this: example.com/article/1/My-first-post
但我没有在 URL 中获得标题.
But I am not getting title in URL.
Soju 说 slug 是一个数据库属性.我在我的文章表中创建了一个名为 slug 的新列,它是 varchar 1024.但我仍然没有在 URL 中生成 slug.我的网址是:example.com/article/1
Soju said that slug is a database attribute. I have created new column in my article table called slug and it is varchar 1024. But I am still not getting slug generated in URL. My URL is: example.com/article/1
怎么了?谢谢
编辑:我已经更新了我的代码以将标题值插入到我的文章表的 slug 列中.现在我开始工作了,但我没有得到 SEO URL-s.我明白了:article/1/First+Article
,我想要article/1/First-Article
.
EDIT: I have updated my code to insert title value into slug column in my article table. Now I get slug working but I do not get SEO URL-s. I get this: article/1/First+Article
, and I would like article/1/First-Article
.
我尝试过:
这也不起作用:return str_replace(' ', '-', $this->slug);
推荐答案
您可以添加以下 urlManager
规则:
You could add the following urlManager
rule :
并在您的视图中构建 url,如下所示:
And build url in your views like this :
您还可以在模型中添加助手:
You could also add helpers in your model :
然后在您的视图中简单地使用 $model->url
.
And then simply use $model->url
in your views.
这篇关于如何使用 Yii2 Sluggable Behavior?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!