📜  laravel 生成 slug - PHP (1)

📅  最后修改于: 2023-12-03 15:02:37.934000             🧑  作者: Mango

Laravel 生成 Slug - PHP

什么是 Slug?

Slug 是指 URL 中用于描述页面内容的部分,通常是一些单词或短语的组合,用连字符(-)连接。比如,这个页面的 Slug 是 laravel-生成-slug-php

生成 Slug 可以帮助 SEO(搜索引擎优化),使得页面 URL 更加友好、可读性更高。

Laravel 中如何生成 Slug?

Laravel 提供了一个非常方便的助手函数 Str::slug(),可以根据给定字符串生成对应的 Slug。下面是一个示例代码片段:

use Illuminate\Support\Str;

// 生成 Slug
$slug = Str::slug('Laravel 生成 Slug - PHP');

// 输出:laravel-生成-slug-php
echo $slug;

在上面的代码中,我们首先导入了 Str 类,然后使用 Str::slug() 方法生成了 Laravel 生成 Slug - PHP 对应的 Slug。最后,我们通过 echo 命令输出了生成的 Slug。

Str::slug() 方法有两个参数:

  • 第一个参数是需要转换成 Slug 的字符串。
  • 第二个参数是用于分隔 Slug 中单词的符号,如果不传入参数,则默认为连字符(-)。
处理中文字符问题

默认的情况下,Str::slug() 方法会将中文字符转换成 ASCII 码对应的字符。但是,在一些场景下,我们可能需要保留中文字符。

这时,可以使用 laravel-china/ivy 项目提供的 Pinyin::slug() 方法。

首先,需要在项目中安装 laravel-china/ivy 包:

composer require laravel-china/ivy

然后,就可以使用 Pinyin::slug() 方法生成中文 Slug 了。下面是一个示例代码片段:

use Overtrue\Pinyin\Pinyin;

// 配置 Pinyin
$pinyin = new Pinyin();
$pinyin->set('delimiter', '-');

// 生成 Slug
$slug = $pinyin->slug('Laravel 指南');

// 输出:laravel-zhi-nan
echo $slug;

在上面的代码中,我们首先导入了 Pinyin 类,然后配置了使用连字符作为分隔符。

最后,我们使用 Pinyin::slug() 方法生成了 Laravel 指南 对应的 Slug,并通过 echo 输出了结果。

总结

Slug 是一个非常有用的功能,可以让页面 URL 变得更加友好、可读性更高。在 Laravel 中,通过 Str::slug() 方法可以很方便地生成 Slug。

如果需要处理中文字符,可以使用 laravel-china/ivy 项目提供的 Pinyin::slug() 方法。