steevedroz / ci4-slug
帮助更轻松地创建缩略名
v0.2.0
2020-09-03 06:27 UTC
Requires
- php: >=7.2
- codeigniter4/framework: ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2024-09-29 05:42:32 UTC
README
你是否曾经想要一种简单的方法来使用CodeIgniter设置漂亮的URL?这个库就是为了你而制作的!
SteeveDroz\CiSlug\Slugify
允许你计算给定标题或名称适合的URL兼容名称。
安装
要安装此库,请在CodeIgniter项目中键入 composer require steevedroz/ci4-slug
。
用法
基本用法
Slugify
旨在从模型中使用,因为它需要一个模型。以下是一个默认用法示例
<?php
namespace App\Models;
use CodeIgniter\Model;
use SteeveDroz\CiSlug\Slugify;
class PageModel extends Model
{
protected $table = 'pages';
protected $allowedFields = ['title', 'content'];
protected $beforeInsert = ['setSlug'];
public function setSlug($data)
{
$slugify = new Slugify($this);
$data = $slugify->addSlug($data, 'title');
return $data;
}
}
此代码将查找传入数据的 title
值并计算相应的 slug
。如果数据库条目已经存在该 slug
,它将使用 -N
后缀递增 slug
。例如: hello-world
变为 hello-world-2
,然后变为 hello-world-3
,以此类推,直到找到一个空闲的 slug
。
配置
如果您使用不名为 slug
的缩略字段,您可以通过调用 $slugify->setField('your_slug_field_name')
来更改默认行为。
类参考
SteeveDroz\CiSlug\Slugify
__construct
参数
$model
(CodeIgniter\Model) 将咨询数据库以获取现有缩略名的模型。
创建缩略名生成器实例。
setField
参数
$field
(string) 包含缩略名的数据库字段名称。默认名称为slug
,但可以被覆盖。
返回值 void
addSlug
参数
$data
(array) 模型事件(通常是 BeforeInsert 和 BeforeUpdate)传递的数据。$nameField
(string) 用于生成缩略名的字段。
返回值 array
:参数中传递的相同 $data
,增加一个 slug
字段。