Laravel getDirty() kembali kosong padahal seharusnya tidak

Bayangkan model Eloquent dengan properti seperti ini:

class Campaign extends Eloquent
{
    protected $softDelete = true;
    protected $dates = ['started_at', 'ended_at'];
}

Seperti yang dapat disimpulkan, tabel memiliki stempel waktu standar dibuat_at_diperbarui_at, dan dihapus_at. Ia juga memiliki dua kolom tanggal: start_at dan end_at. Di bagian dalam aplikasi saya, saya mencoba memperbarui dua tanggal tambahan:

$campaign->started_at = Carbon::parse(Input::get('activate-start', '+1 week'))->toDateString();
var_dump($campaign->getOriginal('started_at'), $campaign->started_at);
var_dump($campaign->getDirty());

Var_dump pertama, yang membandingkan yang asli dengan yang sekarang, menunjukkan perbedaan nilai. Namun, getDirty(), mengembalikan array kosong. Karena itu, $campaign->save() mengembalikan nilai true tanpa memperbarui DB. Apakah ada yang mengalami ini sebelumnya?


person impleri    schedule 03.04.2014    source sumber


Jawaban (1)


Saya pikir masalah telah diperbaiki dengan mengubah properti $guarded. Milik saya sekarang:

protected $guarded = ['id', 'created_at', 'updated_at', 'deleted_at'];
person impleri    schedule 17.05.2014