使用laravel 4.2我想在URL中使用hashids而不是主键。它易于使用一条记录。如果我使用急切加载,我需要循环遍历所有模型,并用哈希ID替换主键。Laravel使用hashids替换主键获取所有获得
例如。 对于每一篇文章,我需要用hashid来改变post_id。 对于每篇文章的评论,我必须这样做。 对于评论的每个用户等等。 默认情况下,我可以扩展模型以返回hashid吗?
使用laravel 4.2我想在URL中使用hashids而不是主键。它易于使用一条记录。如果我使用急切加载,我需要循环遍历所有模型,并用哈希ID替换主键。Laravel使用hashids替换主键获取所有获得
例如。 对于每一篇文章,我需要用hashid来改变post_id。 对于每篇文章的评论,我必须这样做。 对于评论的每个用户等等。 默认情况下,我可以扩展模型以返回hashid吗?
路线是的,你可以用mutators扩展你的模型如何解决雄辩模型。将此方法放入模型中,或者更好地放入您的所有模型应该扩展的基础模型中。
public function getHashidAttribute()
{
return your_hash_function($this->attributes['id']);
}
后,你会得到你的模型hashid
属性,像这样$post->hashid
,$comment->hashid
等
您可以使用Route :: bind方法来指定应该如何从下面的URL段中解析模型。
Route::bind('post', function($value)
{
return Post::where('hashid', $value)->first();
});
现在Laravel知道,如果你使用这样
/admin/{post}/edit
这将仅适用于单个记录工作。它不会与急切的加载工作。 – rohitnaidu19