Neyi başarmak istediğinize bağlı olarak, burada bazı seçenekleriniz vardır. Önce aşağıya göz atın. Laravel Çerçeve 4'ün Etkili O/RM için öz doğrulayarak akıllı modeller - Ateşli paketi ile
Modeli Kancalar Eğer autovalidating modelleri ile ilgileniyorsanız
, https://github.com/laravelbook/ardent paket bakabilirsiniz. Dışında büyük bir doğrulama ek modeli kancaları kullanabileceğiniz sunduğu özellikler oluşturur:
Here's the complete list of available hooks:
before/afterCreate()
before/afterSave()
before/afterUpdate()
before/afterDelete()
before/afterValidate() - when returning false will halt validation, thus making save() operations fail as well since the validation was a failure.
laravel Modeli Olaylar
herhangi bir ek malzeme kullanmak istemiyorum, sadece aslında (yani laravel Modeli Olaylar kullanabilirsiniz Ateşli kancalara sarılır. , oluşturulan, güncelleme, güncellenen, kaydetme, kaydedilmiş, silme, silinen yaratma: http://laravel.com/docs/eloquent#model-events
, Etkili modeller aşağıdaki yöntemleri kullanarak modelin yaşam döngüsü içinde farklı puan içine kanca sağlayan çeşitli etkinlikler ateş docs içine bak , geri yüklendi, geri yüklendi.
İlk kez yeni bir öğe kaydedildiğinde, oluşturma ve oluşturulan olaylar tetiklenir. Bir öğe yeni değilse ve kaydetme yöntemi olarak adlandırılırsa, güncelleme/güncelleştirilmiş olaylar tetiklenir. Her iki durumda da, kaydetme/kaydetme olayları patlayacaktır.
false ise, güncelleme tasarruf veya etkinlikleri silme, yaratıklarından döndürülen, aksiyon iptal edilecektir:
Çözüm
Son olarak, reffering size yukarıdaki yaklaşımları yararlanabilirler sorgulamaya çeşitli şekillerde ama en açıkçası, Eloquent Modelleri 'getDirty()api docs here yöntemiyle birleştirebilirsiniz. Örneğin, kaydetme olayıyla çalışacaktır.
Yourmodel::saving(function($model)
{
foreach($model->getDirty() as $attribute => $value){
$original= $model->getOriginal($attribute);
echo "Changed $attribute from '$original' to '$value'<br/>\r\n";
}
return true; //if false the model wont save!
});
Çok ayrıntılı cevap! Çok teşekkürler. – Karl
Laravel 5.3> https://github.com/laravel/framework/blob/5.3/src/Illuminate/Database/Eloquent/Model.php#L3177. – imme