区分大小写在带有uppercas的服务器上无法缓慢运行

问题描述 投票:1回答:2

我正在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';
    }
}
laravel case-sensitive slug
2个回答
2
投票

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

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);
    }
}

0
投票

\config\sluggable.php文件中,有一个方法功能。函数的最后一行是:

return preg_replace(array_keys($map), array_values($map), $string);

$string替换strtolower($string)。该行应如下所示:

return preg_replace(array_keys($map), array_values($map), strtolower($string));

[这将导致所有字母在用于构成首尾之前都变为小写,因此两个具有不同字母大小写的相同单词将不被视为两个不同单词。

© www.soinside.com 2019 - 2024. All rights reserved.