ID oculto do Laravel

Às vezes, é inteligente não expor o ID de um recurso. Uma razão é porque o ID pode dizer o quão ativo é o site, nem sempre queremos isso.

O que quase sempre faço é usar Hashids . Hashids gera hashes curtos a partir de números. Como isso:

Hashids::encrypt(1); //Ri7Bi

Agora, para usar isso automaticamente, é uma boa idéia usar um acessador Laravel . Mas não queremos alterar o ID em si (isso pode causar muitos problemas). Portanto, usamos uma combinação dos arrays protegidos $appendse $hidden.


class Resource extends Eloquent {

protected $hidden = array('id');
protected $appends = array('token');

public function getTokenAttribute()
{
return Hashids::encrypt($this->id);
}

}

Desta forma, ocultamos o ID e criamos atributos customizados que serão retornados automaticamente na coleção.

O que você acha?