Laravel поставляется с мощной функцией под названием "Eloquent Accessors and Mutators".
Эти функции позволяют вам манипулировать данными в свойствах вашей модели до того, как они будут сохранены в базе данных или получены из базы данных.
Аксессоры и мутаторы полезны, когда необходимо преобразовать данные перед их сохранением или отображением, не изменяя базового значения.
Аксессоры
Аксессор - это метод вашей модели, который вызывается, когда вы пытаетесь получить доступ к свойству модели.
Имя метода совпадает с именем свойства, но перед ним ставится слово "get".
Например, если в вашей модели есть свойство "full_name", вы можете определить метод "getFullNameAttribute", который будет вызываться при каждом обращении к свойству "full_name".
Вот пример аксессора, который возвращает полное имя пользователя:
class User extends Model { public function getFullNameAttribute() { return $this->first_name . ' ' . $this->last_name; } }
Затем вы можете получить доступ к полному имени пользователя, вызвав $user->full_name.
Будет вызван метод getFullNameAttribute и возвращено полное имя.
Мутаторы
Мутатор - это метод вашей модели, который вызывается, когда вы пытаетесь установить свойство модели.
Имя метода совпадает с именем свойства, но перед ним ставится слово "set".
Например, если в вашей модели есть свойство "password", вы можете определить метод "setPasswordAttribute", который будет вызываться всякий раз, когда вы попытаетесь установить свойство "password".
Вот пример мутатора, который хэширует пароль перед его сохранением в базе данных:
Затем вы можете установить пароль пользователя, вызвав $user->password = 'password'.
Будет вызван метод setPasswordAttribute, и пароль будет хэширован перед сохранением в базе данных.
class User extends Model { public function setPasswordAttribute($value) { $this->attributes['password'] = Hash::make($value); } }
Вы также можете использовать аксессоры и мутаторы в сочетании друг с другом.
Например, вы можете определить аксессор getFullNameAttribute и мутатор setFullNameAttribute для обработки полного имени пользователя.
В заключение следует отметить, что Eloquent Accessors и Mutators - это мощная функция Laravel, которая позволяет преобразовывать данные до того, как они будут сохранены или получены из базы данных.
Их можно использовать, чтобы сделать ваш код более чистым и удобным для сопровождения, инкапсулируя логику, связанную с манипуляцией данными в свойствах вашей модели.
Originally published at https://nativecoders.io.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.