سمات لا تحصل على تحور
سؤال
يبدو أن القيم الافتراضية المحددة في خاصية السمات $لا يتم تحورها قبل الحفظ في قاعدة البيانات?
لدي هذا الإعداد:
protected $attributes = array(
'data' => array();
);
public function getDataAttribute($value)
{
return unserialize($value);
}
public function setDataAttribute($value)
{
$this->attributes['data'] = serialize($value);
}
كل ما أحصل عليه هو حقل قاعدة البيانات مليئة حرفيا 'صفيف' وخطأ بريغريبلاس.عند تحديد السمة الافتراضية في تجاوز save()
الطريقة التي لا تحصل على تحور.
يمكن لأي شخص تأكيد هذا و/أو لديه اقتراحات?
شكرا.
المحلول
أنت تقوم بتعيين متغير افتراضي على الكائن نفسه ، وهو خارج وظيفة المتحور.
من المحتمل أن يكون الخيار الأفضل هو تضمين الإعداد الافتراضي في منشئ النموذج ، بحيث يتم استدعاؤه وتحوره عند إنشاء الكائن.أعتقد أن شيئا كهذا يجب أن يعمل:
function __construct($attributes = array()) {
parent::__construct($attributes);
$this->data = array();
}
لا تنتمي إلى StackOverflow