alexeymezenin / laravel-russian-slugs
Laravel 5 的俄语SEO友好型缩略名
Requires
- php: >=5.4.0
README
该软件包不再受支持
简介
此软件包提供易于使用的西里尔字母缩略名,如 'Как_вырастить_дерево' 和 Yandex 转写 'kak-vyrastis-derevo' 的缩略名及其变体,包括小写字母和不同的分隔符。
安装
首先,编辑您的 Laravel 项目的 composer.json 文件,在 require 部分添加此行
"require": {
....
"alexeymezenin/laravel-russian-slugs": "0.9.*"
之后,运行此命令安装软件包
composer update
现在,将这些两行插入到 config/app.php
中的 provider 和 aliases 数组中
'providers' => [
....
AlexeyMezenin\LaravelRussianSlugs\SlugsServiceProvider::class,
'aliases' => [
....
'Slug' => AlexeyMezenin\LaravelRussianSlugs\SlugsFacade::class,
最后,通过运行以下命令来注册配置文件和相关命令
php artisan vendor:publish
使用缩略名
要使用此软件包,您需要更新模型,添加此 use
子句
class Articles extends Model
{
use \AlexeyMezenin\LaravelRussianSlugs\SlugsTrait;
然后您需要在迁移中创建 slug
列
$table->string('slug');
要使用 自动创建缩略名 功能,请将 slugFrom
属性添加到您的模型中
protected $slugFrom = 'article_name';
在这种情况下,每次您将数据保存到数据库时,软件包都会尝试创建(但不重新创建)一个新的缩略名并将其保存
$article = Article::create(['article_name' => 'Как вырастить дерево?']);
当然,在您使用一个查询更新多行时,这不会与大量插入和更新一起工作。
手动创建缩略名
要使用缩略名创建 新记录,请使用 reslug()
方法。这将基于 name
列添加缩略名
$article = new Article;
$article->name = 'How to grow a tree?';
$article->reslug('name');
$article->save();
您可以 更新现有记录 并添加缩略名
$article = Article::find(1);
$article->reslug('name');
$article->save();
如果缩略名已存在,但您需要重新创建它,请使用强制 reslug
$article->reslug('name', true);
或者,您可以使用 Slug
面具手动处理缩略名
$article = Article::find(1);
$article->update([
'slug' => Slug::build($article->name)
]);
findBySlug()
方法允许您根据其缩略名找到模型
$slug = 'how-to-grow-a-tree';
$article = Article::findBySlug($slug);
echo $article->name; // Will output "How to grow a tree?"
配置
要配置软件包,应编辑 config/seoslugs.php
文件。
delimiter
是替换字符串中所有空格的符号。默认为 '_',但也可以是 '-'。
urlType
是缩略名的类型
默认为 1。用于类似 /категория/книги_в_москве
的 URL。
2 用于类似 /kategoriya/knigi_v_moskve
的转写 URL,使用 Yandex 规则进行转写。
keepCapitals
默认为 false
。当为 true
时,在缩略名中保留大写字母,例如:/книги_в_Москве
slugColumnName
设置缩略名列的名称。默认为 slug
。
命令
软件包中提供了三个控制台命令
php artisan slug:auto {table} {column}
命令创建并执行迁移,使用 {column} 作为源重置表(为所有行创建缩略名)。
php artisan slug:migration {table}
命令创建添加缩略名列的迁移。
php artisan slug:reslug {table} {column}
命令为指定的表创建或重新创建缩略名。
命令 slug:auto
和 slug:reslug
将重新创建所有缩略名,即使它们已经存在(使用强制 reslug)。
版权
RussianSeoSlugs 由 Alexey Mezenin 编写,并按 MIT 许可证发布。