Php 从名称创建唯一的slug,检查数据库现有slug
我现在正在开发一个web应用程序,它从一个用户那里获取一个名字并从中生成一个slug。例如John Doe->John Doe slug需要是唯一的,因为它被用作标识符,所以我很抱歉,我目前正在做以下工作 `$slug=Str::slug($slug) ` 如果像john doe一样存在一个段塞,这将创建john-doe-1,问题是出现的下一个john doe也会尝试创建一个唯一的john-doe-1段塞,因为查询只查找精确匹配 有没有一种方法可以让我在数据库中搜索john doe+john doe的所有事件-Php 从名称创建唯一的slug,检查数据库现有slug,php,laravel,eloquent,slug,Php,Laravel,Eloquent,Slug,我现在正在开发一个web应用程序,它从一个用户那里获取一个名字并从中生成一个slug。例如John Doe->John Doe slug需要是唯一的,因为它被用作标识符,所以我很抱歉,我目前正在做以下工作 `$slug=Str::slug($slug) ` 如果像john doe一样存在一个段塞,这将创建john-doe-1,问题是出现的下一个john doe也会尝试创建一个唯一的john-doe-1段塞,因为查询只查找精确匹配 有没有一种方法可以让我在数据库中搜索john doe+john d
通过这种方式,我知道要向slug添加什么数字以使其唯一您可以使用
composer require spatie/laravel slaggable
包生成唯一slug
<?php
namespace App;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasSlug;
/**
* Get the options for generating the slug.
*/
public function getSlugOptions() : SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('name')
->saveSlugsTo('slug');
}
}
您可以使用composer require space/laravel sluggable
包生成唯一的slug
<?php
namespace App;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasSlug;
/**
* Get the options for generating the slug.
*/
public function getSlugOptions() : SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('name')
->saveSlugsTo('slug');
}
}
从像“%john doe%”这样的slug用户中选择*
?您可以附加用户id。这将确保它是唯一的。检查这个。GitHub上已经有了一些很好的解决方案。在那里搜索“laravel slug”。从像“%john doe%”这样的slug所在的用户中选择*
?您可以附加用户id。这将确保它是唯一的。检查这个。GitHub上已经有了一些很好的解决方案。在那里搜索“laravel slug”。是的,这是几个可以为您处理此问题的软件包之一(也是我个人最喜欢的;Spatial的东西总是经过深思熟虑和维护)。是的,这是几个可以为您处理此问题的软件包之一(也是我个人的最爱;空间的东西总是经过深思熟虑和维护的)。