区分大小写在大写服务器上的 sluggable 中不起作用
case sensitive doesn't work in sluggable on server with uppercas
我在 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';
}
}
您可以尝试添加一个新的访问器并将其用作这样的源:
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);
}
}
在\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));
这将导致所有字母在被用来制作 slug 之前变成小写,这样两个不同字母大小写的相同单词将不会被视为两个不同的单词。
我在 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';
}
}
您可以尝试添加一个新的访问器并将其用作这样的源:
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);
}
}
在\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));
这将导致所有字母在被用来制作 slug 之前变成小写,这样两个不同字母大小写的相同单词将不会被视为两个不同的单词。