• Час читання ~1 хв
  • 24.08.2022

Laravel Model Sanitize – це пакет від Touhidur Rahman, щоб керувати процесом дезінфекції даних моделі під час створення та оновлення записів.

Надано наступний виклик User::create (), пакет Sanitize автоматично видалить дані, які не підлягають заповненню:

// Using the package's Sanitizable triat
use 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' => '[email protected]',
    'password' => 'password',
    'data' => 'some data' // Invalid field
];
 
User::create($data);

Функція Sanitizable автоматично працюватиме для різних методів створення та оновлення моделі (наприклад, updateOrCreate, firstOrCreate тощо).

Якщо ви використовує $fillable на моделях, цей пакет не буде потрібним, однак, якщо ви використовуєте $guarded = [], цей пакет відхилить стовпці, яких немає в таблиці.

У пакеті також є два статичні методи для розділення даних із відповідними полями для отримання дійсних/недійсних даних:

$data = [
    'email' => '[email protected]',
    'password' => 'password',
    'data' => 'some data',
    'name' => 'Test User'
];
 
// Get only valid fields
User::sanitize($data);
/*
[
    'email' => '[email protected]',
    'password' => 'password',
    'name' => 'Test User'
]
*/
 
// Get invalid attributes from data
User::gibberish($data);
/*
[
    'data' => 'some data',
]
*/

Ви можете дізнатися більше про цей пакет, отримати повні інструкції зі встановлення та перегляньте вихідний код на GitHub.


< em>Цей пакет було надіслано до нашого Розділ посилань на новини Laravel. Посилання – це місце, де спільнота може публікувати пакети та навчальні посібники в екосистемі Laravel. Підписуйтесь на Twitter @LaravelLinks

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297