Laravel 设置属性无效
Laravel set Attribute not working
我需要 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);
}
}
在我的控制器中
$user_id = User::insert($request->post);
post 数组与
array(
'name'=>'A',
'email'=>'Test@gmail.com',
'socials'=> array(
'facebook' => 'facebook.com',
'twitter' => 'twiter.com'
)
)
但是数据库没有序列化数据!
我认为它不适用于 insert
方法。尝试使用create
方法向数据库插入数据。
$user = User::create($request->post);
不,当我保存到数据库时 Socials
没有序列化
这显示数据库中的数组,我喜欢你说的删除 getSocialsAttribute
并且不起作用。
我需要 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);
}
}
在我的控制器中
$user_id = User::insert($request->post);
post 数组与
array(
'name'=>'A',
'email'=>'Test@gmail.com',
'socials'=> array(
'facebook' => 'facebook.com',
'twitter' => 'twiter.com'
)
)
但是数据库没有序列化数据!
我认为它不适用于 insert
方法。尝试使用create
方法向数据库插入数据。
$user = User::create($request->post);
不,当我保存到数据库时 Socials
没有序列化
这显示数据库中的数组,我喜欢你说的删除 getSocialsAttribute
并且不起作用。