【发布时间】:2018-03-04 01:03:48
【问题描述】:
帮助我将 json 保存到数据库。表字段类型 - 文本。 我有带有强制转换数组的模型
class Salesteam extends Model
{
protected $casts = [
'team_members' => 'array'
];
}
我想得到这样的 json {"index":"userId"} 并将其存储到 db。 示例:
{"1":"7","2":"14","3":"25","4":"11"}
我在数据库中有 Salesteam 模型和“team_members”列来保存所有用户 ID 属于这个团队。 我的代码通过 id 查找团队,获取所有 'team_members' 属性并将新用户添加到该团队。我希望在添加新用户 ID 时以 json 格式存储所有用户并递增索引。
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();
但它存储到 db 数组并且没有索引
"team_members" => "[1,34,56]"
来自 Laravel 文档 - Array & JSON Casting“数组将自动序列化回 JSON 进行存储”
我哪里错了?
【问题讨论】:
-
您的问题不清楚,请补充更具体的细节?你的代码是做什么的?以及您在哪个变量或代码行中获得了哪个输出?
-
在保存之前将其编码为 JSON?