22
common/Files/Traits/HashesId.php
Executable file
22
common/Files/Traits/HashesId.php
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php namespace Common\Files\Traits;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
trait HashesId
|
||||
{
|
||||
public function getHashAttribute(): string
|
||||
{
|
||||
return trim(base64_encode(str_pad($this->getRawOriginal('id').'|', 10, 'padding')), '=');
|
||||
}
|
||||
|
||||
public function scopeWhereHash(Builder $query, $value)
|
||||
{
|
||||
$id = $this->decodeHash($value);
|
||||
return $query->where('id', $id);
|
||||
}
|
||||
|
||||
public function decodeHash($hash): int
|
||||
{
|
||||
return (int) explode('|', base64_decode($hash))[0];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user