我在algolia记录中遇到了一些问题。我在People表中有一些属性(例如id(int),user_id(int),name(varchar)......等)。
当我通过Laravel 5.5将新记录添加到数据库时,一切都在algolia工作正常,但我尝试更新记录然后虽然记录完美更新但数据类型正在改变。与更新之前的记录一样,user_id在更新名称之后是int = 6,否则user_id将隐式转换为varchar。
我不知道发生了什么。
在更新此记录之前:
更新同一记录后:
插入代码为:
$new_person = People::create([
'user_id' => Auth::user()->id,
'stage_id' => 0,
'source_id' => 0,
'agent_id' => 0,
'custom_field_id' => 0,
'fname' => $request->first_name,
'lname' => $request->last_name,
'phone' => $request->phone,
'email' => $request->email,
'avatar' => "/images/user.png",
'name_slug' => createPeopleSlug($request->first_name , $request->last_name)
]);
更新代码为:
$person = People::find($request->personID);
$person->tags = $tagsString;
$person->save();
我不是Aloglia的专家
答案 0 :(得分:2)
通过将Laravel casts变量添加到模型中,可以解决此问题,简单。
protected $casts = [
'user_id' => 'integer',
'agent_id' => 'integer',
'company_person_id' => 'integer',
];
干杯!