我使用Laravel4.2,我想使用hashids,而不是urls中的主键。它很容易用在一张唱片上。如果我使用急切加载,我需要循环遍历所有模型,并用散列ids替换主键。
例如。对于每一篇文章,我都需要用一个hashid来改变post_id。对于这篇文章的每一个评论,我都要做同样的事情。对于评论的每个用户,等等。默认情况下,我可以扩展模型以返回hashid吗?
发布于 2015-04-23 12:30:56
是的,您可以使用突变体扩展您的模型。将此方法放置到您的模型中,或者更好地放置到您的基本模型中,所有的模型都应该扩展这些模型。
public function getHashidAttribute()
{
return your_hash_function($this->attributes['id']);
}之后,您将在您的模型上获得hashid属性,如so $post->hashid、$comment->hashid等。
发布于 2015-04-23 10:59:22
您可以使用路由::bind方法来指定应该如何从URL段解析模型,如下所示。
Route::bind('post', function($value)
{
return Post::where('hashid', $value)->first();
});现在,如果您使用这样的路线,Laravel知道如何解决雄辩模型
/admin/{post}/edithttps://stackoverflow.com/questions/29821350
复制相似问题