10 Fitur Fasih Laravel Tersembunyi Yang Mungkin Tidak Anda Ketahui - CRUDPRO

10 Fitur Fasih Laravel Tersembunyi Yang Mungkin Tidak Anda Ketahui

10 Fitur Fasih Laravel Tersembunyi Yang Mungkin Tidak Anda Ketahui

Laravel adalah kerangka kerja yang kaya fitur. Namun, Anda tidak dapat menemukan semua fitur yang tersedia di dokumentasi resmi. Berikut adalah beberapa fitur yang mungkin belum Anda ketahui.

10 Fitur Fasih Laravel Tersembunyi Yang Mungkin Tidak Anda Ketahui
1. Dapatkan atribut asli

Setelah memutasi catatan Eloquent, Anda bisa mendapatkan atribut asli dengan memanggil getOriginal()

$user = App\User::first();
$user->name;                   //John$user->name = "Peter";         //Peter$user->getOriginal('name');    //John
$user->getOriginal();          //Original $user record
2. Periksa apakah Model berubah

Tentukan apakah model atau atribut yang diberikan telah dimodifikasi menggunakan isDirty()

$user = App\User::first();
$user->isDirty();          //false$user->name = "Peter";
$user->isDirty();          //true

Anda juga dapat memeriksa apakah atribut tertentu diubah.

$user->isDirty('name');    //true
$user->isDirty('age');     //false
3. Dapatkan atribut yang diubah

Ambil atribut model yang diubah menggunakan getChanges()

$user->getChanges()//[
     "name" => "Peter",
  ]
Catatan: Perubahan hanya akan terlihat jika Anda menyimpan model atau menyinkronkan perubahan menggunakan syncChanges()
4. Custom deleted_at kolom

Secara default, Laravel menangani penghapusan lunak menggunakan kolom delete_at. Anda dapat mengubahnya dengan mendefinisikan properti DELETED_AT secara eksplisit.

class User extends Model
{
    use SoftDeletes;

     * The name of the "deleted at" column.
     *
     * @var string
     */
    const DELETED_AT = 'is_deleted';
}

Atau dengan mendefinisikan accessor.

class User extends Model
{
    use SoftDeletes;

    public function getDeletedAtColumn()
    {
        return 'is_deleted';
    }
}
5. Simpan model dan hubungan

Anda dapat menyimpan model dan hubungan terkaitnya menggunakan metode 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 both user and phone record in DB
6. Muat ulang model baru

Muat ulang instance model baru dari database menggunakan fresh()

$user = App\User::first();
$user->name;               // John

// user record get updated by another thread. eg: 'name' changed to // Peter.

$updatedUser = $user->fresh(); 
$updatedUser->name;       // Peter

$user->name;              // John
7. Muat ulang model yang ada

Anda dapat memuat ulang model yang ada dengan nilai baru dari database menggunakan refresh()

$user = App\User::first();
$user->name;               // John// user record get updated by another thread. eg: 'name' changed to // Peter.$user->refresh(); 
$user->name;              // Peter
Catatan: refresh() juga akan memperbarui relasi yang dimuat dari model yang ada.
8. Periksa apakah modelnya sama

Tentukan apakah dua model memiliki ID yang sama dan termasuk dalam tabel yang sama menggunakan 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. Mengkloning model

Anda dapat mengkloning model menggunakan replica(). Ini akan membuat salinan model menjadi instance baru yang tidak ada.

$user = App\User::find(1);
$newUser = $user->replicate();$newUser->save();
10. Tentukan atribut dalam metode find()

Saat menggunakan metode find() atau findOrFail() Anda dapat menentukan atribut yang akan dipilih sebagai argumen kedua.

$user = App\User::find(1, ['name', 'age']);
$user = App\User::findOrFail(1, ['name', 'age']);