Laravel-это функциональная структура. Однако вы не можете найти все функции, доступные в официальных документах. Вот некоторые функции, о которых вы, возможно, не знаете.
1. Получите исходный атрибут
При изменении записи красноречивой модели вы можете вызвать метод get Original ()
, чтобы получить исходные атрибуты записи
$user = App\User::first(); $user->name; //John $user->name = "Peter"; //Peter $user->getOriginal('name'); //John $user - > getOriginal (); // original $user record
2. Проверьте, была ли изменена модель
Используйте метод IsDirty ()
, чтобы определить, была ли изменена модель или данный атрибут
$user = App\User::first(); $user->isDirty(); //false $user->name = "Peter"; $user->isDirty(); //true
Вы также можете проверить, было ли изменено указанное свойство.
$user->isDirty('name'); //true $user->isDirty('age'); //false
3. Получите измененные атрибуты
Используйте GetChanges()
Получите измененные свойства
$user->getChanges() //[ "name" => "Peter", ]
Примечание: Только при использовании синхронизация изменений()
Только при синхронном сохранении или обновлении модели она вступит в силу
4. Определение поля deleted_at
По умолчанию Laravel использует deleted_at
Для обработки полей мягкое удаление. Вы можете определить DELETED_AT
Свойство, чтобы изменить его.
class User extends Model { use SoftDeletes; * The name of the "deleted at" column. * * @var string */ const DELETED_AT = 'is_deleted'; }
Или определите доступ
class User extends Model { use SoftDeletes; public function getDeletedAtColumn() { return 'is_deleted'; } }
5. Сохранение моделей и взаимосвязей
Вы можете использовать методы push()
Модель и ее связь были сохранены.
class User extends Model { public function phone() { return $this->hasOne('App\Phone'); } } $user = User::first(); $user->name = "Peter"; $user->phone->number = '1234567890'; $user - > push (); // This will update users and phones in the database
6. Перезагрузите модель
Используйте fresh()
Перезагрузите модель из базы данных.
$user = App\User::first(); $user->name; // John // The user table is modified by other processes. Example: Another data named Peter is inserted into the database. $updatedUser = $user->fresh(); $updatedUser->name; // Peter $user->name; // John
7. Перезагрузите существующие модели
Ты можешь им воспользоваться. обновить()
Метод Для перезагрузки существующей модели с новыми значениями из базы данных.
$user = App\User::first(); $user->name; // John // The user table is modified by other processes. Example: "name" was changed to "Peter". $user->refresh(); $user->name; // Peter
Примечание: обновить()
Данные модели ассоциации модели также будут обновлены.
8. Проверьте, совпадает ли модель
Используйте метод is ()
, чтобы определить, имеют ли две модели один и тот же первичный ключ и принадлежат ли они одной и той же таблице.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. Клонирование модели
Ты можешь им воспользоваться. replicate()
Метод копирования модели в новый объект.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. В функции найти()Атрибуты, указанные для поиска в методе
При использовании find()
или findOrFail()
При передаче второго параметра вы можете указать свойства, которые необходимо просмотреть.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
Если вы находите эту статью полезной, выразите свою симпатию, сделав комплимент. Я также хотел бы услышать ваши мнения и мысли по этому поводу. Вы можете найти меня в Твиттере.
От сообщества разработчиков PHP/Laravel https://laravel -China.org/top…