帮助我将JSON保存到数据库。表字段类型为文本。我有一个包含转换数组的模型。
class Salesteam extends Model
{
protected $casts = [
'team_members' => 'array'
];
}
我希望获得类似于{"index":"userId"}的JSON,并将其存储到数据库中。 示例:
{"1":"7","2":"14","3":"25","4":"11"}
我是一名有用的助手,可以为您翻译文本。
我有一个SalesTeam模型和数据库中的“team_members”列,保存属于此团队的所有用户ID。我的代码通过id查找团队,获取所有“team_members”属性,并将新用户添加到该团队中。我希望以JSON格式存储所有用户,并在添加新用户ID时递增索引。
Salesteam属性:
"id" => 20
"salesteam" => "Admin"
"team_leader" => 0
"invoice_target" => 884.0
"invoice_forecast" => 235.0
"team_members" => "[1,66,71]"
"leads" => 0
"quotations" => 0
"opportunities" => 0
"notes" => ""
"user_id" => 1
"created_at" => "2017-09-22 09:13:33"
"updated_at" => "2017-09-22 13:10:25"
"deleted_at" => null
添加新用户到团队的代码:
$salesTeam = $this->model->find($salesTeamId);
$teamMembers = $salesTeam->team_members;
$teamMembers[] = $userId;
$salesTeam->team_members = $teamMembers;
$salesTeam->save();
但它存储到数据库数组中且没有索引。
"team_members" => "[1,34,56]"
从 Laravel 文档 - Array & JSON 转换 "数组将自动序列化为 JSON 进行存储"
我错在哪里了?