gpt4 book ai didi

php - Laravel cviebrock/eloquent-sluggable 将@ 作为前缀或在路由中过滤它

转载 作者:行者123 更新时间:2023-12-04 09:23:17 27 4
gpt4 key购买 nike

Laravel 7.0 版,我正在使用 cviebrock/eloquent-sluggable包裹。
我要的是放@作为用户名的前缀。
我在 User 模型中包含了 Sluggable trait 并像这样设置。

public function sluggable()
{
return [
'username' => [
'source' => 'name',
'separator' => '',
'onUpdate' => true
]
];
}
现在我想要的是 https://mywebsite.com/@username url 显示用户个人资料。
我想我们可以把 @作为 sluggable 包中的前缀,或者我们可以在 Laravel 路由中检测到它。
谁能建议我更好的方法?
谢谢

最佳答案

我建议您尝试 eloquent-sluggable 的 method 并在那里生成带前缀的 slug(即以 @username 格式)而不是保留 @作为路线的一部分。
此建议背后的基本原理是,当您生成和存储 @ 时在 slug 本身而不是 route (据我所知,您在质疑哪个更好),您可以轻松地使用 @ 引用用户的任务。符号,因为您只需要查询匹配的条目,而无需关心来回进行转换(例如,在生成链接时将 username 加上 @ 前缀)。
更新:为 method 添加了基本示例以 @ 为用户名前缀
这是一个基本示例,展示了如何为用户添加 @ 前缀。 .确保添加自己处理的空间,以防用户名可能包含这些空间。

  return [
'username' => [
...,
'method' => function ($username, $separator) {
// example from docs: strtolower(preg_replace('/[^a-z]+/i', $separator, $string));
return "@{$username}";
},
]
];

关于php - Laravel cviebrock/eloquent-sluggable 将@ 作为前缀或在路由中过滤它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63065019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com