在Laravel路线中用UID替换Id

时间:2016-02-11 05:51:01

标签: php laravel

现在,我的所有路线都是这样的:

domain.com/clients/10/edit

我想隐藏代表客户端ID的10,并将其替换为通用UID,以便用户无法访问客户端的ID(他可以知道我看到了多少个客户端)。

我看到一个library会产生slu ..它很容易实现。我只需要在视图中更改引用,并在我的模型中指定:

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

根据docs

尽管如此,您可以将资源命名为帖子,但对于categorySetting,我不确定这是否是正确的方法。

任何想法如何生成"数字slug"?

1 个答案:

答案 0 :(得分:0)

在您的客户表中创建一个generic_id字段。在创建新行时插入唯一的通用ID:

$generic_id = range(1000, 20000);
shuffle($generic_id); // so it's unique

// or use uniqid()

自定义模型中的密钥名称:

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