• Время чтения ~1 мин
  • 24.08.2022

Laravel Model Sanitize — это пакет, созданный Тоухидур Рахман для обработки процесса очистки данных модели при создании и обновлении записей.

Учитывая следующий вызов 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. Links — это место, где сообщество может публиковать пакеты и руководства по экосистеме Laravel. Следите за обновлениями в Твиттере @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