سؤال

يبدو أن القيم الافتراضية المحددة في خاصية السمات $لا يتم تحورها قبل الحفظ في قاعدة البيانات?

لدي هذا الإعداد:

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();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top