composer require pderas/shambles
This package is designed for Laravel that adds a hash value to a model into the database.
To use this package, the following requirements must be met:
Once you have succesfully required the package, (v5.3 only) you must register the service provider in your config/app.php file.
PDERAS\Shambles\ShamblesServiceProvider::class,
If you would like a config file for shambles to define defaults for all models.
php artisan vendor:publish --provider="PDERAS\Shambles\ShamblesServiceProvider"
To use shambles you must make add a column 'hash' to the desired models in the database.
e.i. in a migration somewhere...
class MyMigration extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('my_table', function(Blueprint $table) {
$table->string('hash')->unique();
});
}
}
Then all you have to do is add the Trait to the models
use PDERAS\Shambles\ShamblesTrait;
class MyModel extends Model
{
use ShamblesTrait;
$defaultHashSize = 36; // hash length can be set on a per model basis
$defaultRouteKey = 'hash'; // route key can be set on a per model basis (laravel default is 'id', shambles default is 'hash')
...
}
Now whenever you create a new model it will auto add a hash to it. You can then use that hash for lookups and obscure the models auto-incrementing id.
Get Request ...
http://localhost/my-model-route/{HASH}
function myModelRouteFn(Request $request, MyModel $my_model)
{
...
$my_model->update(...);
...
}
This project is covered under the MIT License. Feel free to use it wherever you like.