Php Laravel集合属性不工作

Php Laravel集合属性不工作,php,laravel,eloquent,laravel-5.2,laravel-eloquent,Php,Laravel,Eloquent,Laravel 5.2,Laravel Eloquent,我需要2个函数添加和更新用户社会与序列化数组字符串之前插入到数据库这里我的代码 <?php use Illuminate\Database\Eloquent\Model as Model; class User extends Model{ protected $table = 'user'; protected $primaryKey = 'user_id'; protected $fillable = [ 'name',

我需要2个函数添加和更新用户社会与序列化数组字符串之前插入到数据库这里我的代码

    <?php
use Illuminate\Database\Eloquent\Model as Model;
class User extends Model{
    protected $table = 'user';
    protected $primaryKey = 'user_id';

    protected $fillable = [
        'name', 
        'email', 
        'socials',
    ];

    public function getSocialsAttribute($value){
       return unserialize($value);
    }

    public function setSocialsAttribute($value){
        settype($value, 'array');
        $this->attributes['socials'] = serialize($value);
    }

}
带有

array(
   'name'=>'A',
   'email'=>'Test@gmail.com',
   'socials'=> array(
     'facebook' => 'facebook.com',
     'twitter' => 'twiter.com'
   )
)

但是数据库不会序列化数据

我认为它对
insert
方法不起作用。尝试使用
create
方法将数据插入数据库

$user = User::create($request->post);

我认为它对
insert
方法不起作用。尝试使用
create
方法将数据插入数据库

$user = User::create($request->post);

否,当我保存到数据库时,
Socials
未序列化

这个显示数据库中的数组,我很喜欢你说的remove
GetSocialAttribute


并且不起作用。

不,当我保存到数据库时,
社交
没有序列化

这个显示数据库中的数组,我很喜欢你说的remove
GetSocialAttribute


不起作用。

你的
insertGetId
函数在哪里?这是我改为insert的laravel,也不起作用:(您可以检查您的数据库,检查
socials
字段是否已序列化。未序列化。在socials列中,文本为数组!您的
insertGetId
函数在哪里?这是laravel,我更改为insert,但也不起作用。)(你能检查你的数据库吗,检查
socials
字段是否已序列化。未序列化。在socials列中,文本是数组!这很奇怪,我尝试此操作时它工作正常。你使用的是什么laravel版本?谢谢你,我更新了composer以获得最新的laravel eloquent和work!这很奇怪,我尝试此操作时它工作正常。什么laravel版本你在用什么?谢谢你,我更新了composer最新的laravel雄辩和作品!这应该是编辑你的问题,而不是作为答案。这应该是编辑你的问题,而不是作为答案。