📅  最后修改于: 2023-12-03 15:07:58.275000             🧑  作者: Mango
在Laravel应用程序中, slug是指从标题或其他文本中生成的短标识符。 slug通常用于生成SEO友好的URL。在本教程中,我们将展示如何使用PHP在Laravel应用程序中自动生成slug。
在Laravel中,我们可以使用str_slug
函数为给定的字符串生成slug。确保您在composer.json
文件中有以下依赖项。
{
"require": {
"illuminate/support": "5.7.*"
}
}
在安装后,确保在代码中包含以下命名空间:
use Illuminate\Support\Str;
现在,我们将创建一个generateSlug
方法在Post
模型中,将为我们的文章自动生成slug,以提高SEO友好程度。
public static function generateSlug($title)
{
$slug = Str::slug($title);
$count = static::whereRaw("slug RLIKE '^{$slug}(-[0-9]+)?$'")->count();
return $count ? "{$slug}-{$count}" : $slug;
}
在上面代码中,我们使用Str::slug
函数将标题转换为slug。然后,我们使用正则表达式计数器检查是否已使用它,并在必要时将数字添加到末尾。
现在我们已经编写了自动生成slug的代码,可以在控制器中使用以下代码来调用。
public function store(Request $request)
{
$post = new Post;
$post->title = $request->title;
$post->slug = Post::generateSlug($request->title);
$post->content = $request->content;
$post->save();
return redirect()->route('posts.index')->with('success','Post has been created.');
}
这将自动在保存文章时生成slug。
在本教程中,我们介绍了如何在Laravel中自动生成slug。使用Str::slug
和正则表达式计数器,我们可以轻松地为我们的应用程序生成SEO友好URL,从而提高流量并提高搜索引擎排名。