首页 > 解决方案 > 区分大小写在带有大写字母的服务器上的 sluggable 中不起作用

问题描述

我在 Laravel 中使用sluggable包。当我用大写或小写存储相同的字母时,它不知道它们是相同的!例如 'myFlower' 和 'myflower' 分配不同的案例。如果有人有想法,我会很高兴?

class testController extends Model
{
    use Sluggable;

    protected $fillable = [
        'name', 'slug',
    ];

    public function sluggable()
    {
        return [
            'slug' => [
                'source' => 'name'
            ]
        ];
    }

    public function getRouteKeyName()
    {
        return 'slug';
    }
}

标签: laravelcase-sensitiveslug

解决方案


您可以尝试添加一个新的访问器并将其用作这样的源:

class testController extends Model
{
    use Sluggable;

    protected $fillable = [
        'name', 'slug',
    ];

    public function sluggable()
    {
        return [
            'slug' => [
                'source' => 'lowercase_name'
            ]
        ];
    }

    public function getRouteKeyName()
    {
        return 'slug';
    }

    public function getLowercaseNameAttribute() {
        return strtolower($this->name);
    }
}

推荐阅读