Automatically Sanitize Model Data
Published on by Paul Redmond
Laravel Model Sanitize is a package by Touhidur Rahman to handle the sanitization process of model data when creating and updating records.
Given the following call to User::create()
, the Sanitize package will remove non-fillable data automatically:
// Using the package's Sanitizable triatuse Touhidurabir\ModelSanitize\Sanitizable;use Illuminate\Database\Eloquent\Model; class User extends Model { use Sanitizable;} // The trait removes the `data` key, which is not a fillable field$data = [ 'email' => 'somemail@test.com', 'password' => 'password', 'data' => 'some data' // Invalid field]; User::create($data);
The Sanitizable
trait will automatically work for the various create and update model methods (i.e., updateOrCreate, firstOrCreate, etc.).
If you are using $fillable
on models, this package will not be necessary, however, if you use $guarded = []
, this package will discard columns not found on the table.
The package also has two static methods for separating data with corresponding fields to get valid/invalid data:
$data = [ 'email' => 'somemail@test.com', 'password' => 'password', 'data' => 'some data', 'name' => 'Test User']; // Get only valid fieldsUser::sanitize($data);/*[ 'email' => 'somemail@test.com', 'password' => 'password', 'name' => 'Test User']*/ // Get invalid attributes from dataUser::gibberish($data);/*[ 'data' => 'some data',]*/
You can learn more about this package, get full installation instructions, and view the source code on GitHub.
This package was submitted to our Laravel News Links section. Links is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter @LaravelLinks