Рубрики
Uncategorized

Поделитесь 10 Красноречивыми советами уровня, которые вы, возможно, не знаете

Автор оригинала: David Wong.

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…