Laravel:使用slug代替id的优点或缺点

Laravel:使用slug代替id的优点或缺点,laravel,slug,Laravel,Slug,我想知道在寻找模型或URL时,使用slug而不是id的优势是什么或劣势是什么。 因为可以直接绑定url,因此在web.php文件中,此url/users/{user}将变为以下内容: 身份证号码: domain.com/users/1 或者用slug: domain.com/users/IQii33XAQhldEK 谢谢IQii33XAQhldEK不是slug,slug应该是domain.com/users/patrissol kenfack 对于slug,有两个好处: 更好的可读性 搜索引

我想知道在寻找模型或URL时,使用slug而不是id的优势是什么劣势是什么。 因为可以直接绑定url,因此在web.php文件中,此url
/users/{user}
将变为以下内容:

身份证号码:

domain.com/users/1
或者用slug:

domain.com/users/IQii33XAQhldEK

谢谢

IQii33XAQhldEK
不是slug,slug应该是
domain.com/users/patrissol kenfack

对于slug,有两个好处:

  • 更好的可读性

  • 搜索引擎优化更好,因为谷歌会在URL中看到关键词


  • IQii33XAQhldEK
    不是slug,slug应该是
    domain.com/users/patrissol kenfack

    对于slug,有两个好处:

  • 更好的可读性

  • 搜索引擎优化更好,因为谷歌会在URL中看到关键词


  • 如果在url中使用
    id
    ,这可能意味着用户将能够知道他们正在查看的资源的id是什么。通常,这不是什么大问题,但如果没有遵循适当的安全实践,用户可以通过隐式传递此id来修改资源(因此请确保使用
    $filleble
    $guarded
    )。例如,恶意用户可以简单地将

    <input type="text" name="id" value="<the-id-of-any-other-resource>"
    

    all()。通常,这不是什么大问题,但如果没有遵循适当的安全实践,用户可以通过隐式传递此id来修改资源(因此请确保使用
    $filleble
    $guarded
    )。例如,恶意用户可以简单地将

    <input type="text" name="id" value="<the-id-of-any-other-resource>"
    

    all()。我相信这最终会成为一个基于意见的问题,因此它可能最终不适合这样做。这取决于你的应用程序是什么以及它的结构。我相信这最终会成为一个基于意见的问题,因此它可能最终不适合这样做。
    IQii33XAQhldEK
    或多或少是一个slug,如果真的是“slaggified”,那么就是
    IQii33XAQhldEK
    (小写)。slug可以是一个单词,它们不需要包含
    -
    ,等等。可读版本的一些负面影响是性能下降、混淆减少和潜在的非唯一slug性能下降是有争议的,您可以很好地将slug用作主键,或者在数据库中的列上放置一个索引,它将具有相同的性能。只有在需要时才需要模糊处理,而slug实际上比ID更模糊(因为slug表示页面上的内容,而ID是仅后端数据)。现在,对于非唯一性,只需通过添加一个递增的数字来生成唯一的?
    IQii33XAQhldEK
    或多或少是一个slug,如果实际上是“slaggified”,则将是
    IQii33XAQhldEK
    (小写)。slug可以是一个单词,它们不需要包含
    -
    ,等等。可读版本的一些负面影响是性能下降、混淆减少和潜在的非唯一slug性能下降是有争议的,您可以很好地将slug用作主键,或者在数据库中的列上放置一个索引,它将具有相同的性能。只有在需要时才需要模糊处理,而slug实际上比ID更模糊(因为slug表示页面上的内容,而ID是仅后端数据)。现在,对于非唯一性,只需通过添加一个增量数字来生成唯一的?在某些情况下,它也可以在一定程度上帮助显示应用程序的统计信息。。e、 g.用户ID 5000表示您很可能至少注册了5k个用户。在某些情况下,它也可以在一定程度上帮助您披露应用程序的统计信息。。e、 g.用户ID 5000表示您最有可能注册了至少5k个用户