À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 $appends
e $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?