我使用 laravel 4.2,我想在 url 中使用 hashids 而不是主键。它易于使用单个记录。如果我使用预先加载,我需要遍历所有模型并用哈希 ID 替换主键。

例如。
对于每个帖子,我都需要使用 hashid 更改 post_id。
对于帖子的每条评论,我都必须这样做。
对于评论等的每个用户..
我可以扩展模型以默认返回 hashid 吗?

最佳答案

是的,您可以使用 mutators 扩展您的模型。将此方法放入您的模型中,甚至更好地放入所有模型都应扩展的基本模型中。

public function getHashidAttribute()
{
    return your_hash_function($this->attributes['id']);
}

之后,您将在模型上获得 hashid 属性,例如 $post->hashid$comment->hashid 等。

10-07 22:16