steevedroz/ci4-slug

帮助更轻松地创建缩略名

v0.2.0 2020-09-03 06:27 UTC

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) 模型事件(通常是 BeforeInsertBeforeUpdate)传递的数据。
  • $nameField (string) 用于生成缩略名的字段。

返回值 array:参数中传递的相同 $data,增加一个 slug 字段。