Open AidasK opened 4 years ago
Thanks for your advice, and I also have several hashid traits in my projects. This package is just a manager for multiple connections and various encode drivers, I think it is better to let package users use it as they want, or define their own traits based on different requirements.
Trait implementation is the same in the every project, that's why I think it can be included to the package. Ofcourse I would modify above code to be more customizable and I would include parameters for "key" name and for connection instead of "newHashId()" method.
YES, I know your opinion. What I said "different requirements", such as multiple hashed columns, or keep the original value for internal use but expose the hashed value in URL or response data.
For obfuscating the primary key or other sensitive columns, I prefer a non-invasive way to do this. I mean do not change the way of retrieving or saving the Eloquent ORM, do not need to explicitly call such findByHash
findOrFailByHash
methods, the hashing work should be automatically done in the route model binding, toJson()
etc. In fact, when I developed this package, I'd like to provide such a function, but there are some issues on Laravel route model binding at that time, these issues may be fixed now, I have not used Laravel for two years.
Well, this approach is quite suitable for Laravel 6.x. Though there is always more than one solution and this could be the start. If you don't have time for this, I could use this repo as dependency and add these traits to a new repo
A new repo is great 👍
I would like to create a pull request to add these traits for eloquent models. I would change it a bit to use this lib instead of hashid directly, but you get the idea.
I use these two alot and think it would be great to include them to this lib
HashID.php
HashIDRoutable.php
Usage