使用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