Laravel-это функциональная структура. Однако вы не можете найти все функции, доступные в официальных документах. Вот некоторые функции, о которых вы, возможно, не знаете.
1. Получите исходный атрибут
При изменении записи красноречивой модели вы можете вызвать метод get Original () , чтобы получить исходные атрибуты записи
$user = App\User::first();
$user->name; //John
$user->name = "Peter"; //Peter
$user->getOriginal('name'); //John
$user - > getOriginal (); // original $user record2. Проверьте, была ли изменена модель
Используйте метод IsDirty () , чтобы определить, была ли изменена модель или данный атрибут
$user = App\User::first(); $user->isDirty(); //false $user->name = "Peter"; $user->isDirty(); //true
Вы также можете проверить, было ли изменено указанное свойство.
$user->isDirty('name'); //true
$user->isDirty('age'); //false3. Получите измененные атрибуты
Используйте 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 database6. Перезагрузите модель
Используйте 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…