Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
  • YardımLaravel
  • Laravel 8 ile Veri Tabanına Kayıt Tarihi Ekletme Nasıl Yapılır?

Veri tabanıma kaydettiğim verilerin ne zaman kaydedildiiğini veya güncellediğini göstermek istiyorum ama hangi fonksiyonu nasıl kullanmam gerektiğini bilmiyorum yardımcı olabilir misiniz ?

  • mgsmus bunu yanıtladı.
  • koti42 Eloquent kullanıyorsanız ve migrasyon dosyanızda $table->timestamps() ile created_at ve updated_at alanlarının eklenmesini sağladıysanız Laravel bunu sizin için otomatik olarak yapıyor. Göstermek için ise:

    $user = User::first();
    
    $user->created_at; // Oluşturulma tarihi
    $user->updated_at; // Güncellenme tarihi

    created_at ve updated_at alanları ayrıca Carbon objesi olarak döndüğü için şunu da yapabilirsiniz:

    $user->created_at->format('d.m.Y H:i'); // 10.02.2021 16:45
    $user->created_at->diffForHumans(); // 2 dakika önce

    https://laravel.com/docs/8.x/eloquent#timestamps

    koti42 Eloquent kullanıyorsanız ve migrasyon dosyanızda $table->timestamps() ile created_at ve updated_at alanlarının eklenmesini sağladıysanız Laravel bunu sizin için otomatik olarak yapıyor. Göstermek için ise:

    $user = User::first();
    
    $user->created_at; // Oluşturulma tarihi
    $user->updated_at; // Güncellenme tarihi

    created_at ve updated_at alanları ayrıca Carbon objesi olarak döndüğü için şunu da yapabilirsiniz:

    $user->created_at->format('d.m.Y H:i'); // 10.02.2021 16:45
    $user->created_at->diffForHumans(); // 2 dakika önce

    https://laravel.com/docs/8.x/eloquent#timestamps

      mgsmus

      Ek olarak; kendimiz bir tarih girdiysek mesela started_at şeklinde. Bunuda migration da timestamp belirtirsek. Carbon u kullanmadan diffForHumans ve format ı kullanabiliyor muyuz? Ben bir kaç deneme yaptım, kendim tarih girince kullandırmadı.

        berkerbekman İlgili model içinde bu alanın date olduğunu belirtirseniz Carbon objesi olarak kullanabilirsiniz.

        protected $dates = [
            "started_at ",
        ];
        
        // Veya
        
        protected $casts = [
            "started_at" => "datetime",
        ];

          coder2 Oldu, kullanabiliyorum şu an. Fakat Livewire kullanıyorum, düzenleme sayfasında normalde wire:model='started_at' otomatik olarak doluyordu. Şimdi tanımlayamıyor. Yapısı değiştiği için sanırım. Bir fikriniz var mı?

            berkerbekman

            protected $casts = [
                'started_at ' => 'datetime:Y-m-d H:i'
            ];

            şeklinde deneyebilirsiniz. started_at seialize edilirken otomatik verdiğiniz formata dönüşecek, istediğiniz neyse ona göre düzenleyin.