PHP code example of touhidurabir / laravel-model-hashid
1. Go to this page and download the library: Download touhidurabir/laravel-model-hashid library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
touhidurabir / laravel-model-hashid example snippets
$id = 1;
$hashid = 'jRlef2';
class SomeController extends Controller {
public function show(int $id) {
// $id where will be 1, not jRlef2
}
}
use Touhidurabir\ModelHashid\IdHashable;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
use IdHashable;
}
use Touhidurabir\ModelHashid\IdHashable;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
use IdHashable;
/**
* Get the name of hash column name
*
* @return string
*/
public function getHashColumn() {
return 'hash';
}
}
Touhidurabir\ModelHashid\Http\Middleware\DehashRequestParams // this to dehash request post/get params
Touhidurabir\ModelHashid\Http\Middleware\DehashRouteParams // this to dehash route hash params such as /{id} as hash
User::byHashId($hash)->where('active', true)->first(); // single hash id
User::byHashId([$hash1, $hash2])->where('active', true)->get(); // multiple hash id
User::findByHashId($uhashuid); // single hash id
User::findByHashId([$hash1, $hash2]); // multiple hash id
class User extends JsonResource {
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request) {
return [
'id' => $this->hash_id,
'email' => $this->email,
...
];
}
}
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'hash_id',
];
use Touhidurabir\ModelHashid\IdHashing;
class User extends JsonResource {
use IdHashing;
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request) {
return [
'id' => $this->getId(),
'email' => $this->email,
...
];
}
}