所以当我使用get检索对象时,我得到了一个正常的结果
代码:
Contact::select(DB::raw("CONCAT(COALESCE(`name`,''),' ',COALESCE(`last_name`,'')) AS display_name"),'id','name','last_name')->where('id',2382)->get()
结果:
[
"display_name" => "OFNA • CASA "
"id" => 2382
"name" => "OFNA • CASA"
"last_name" => null
]
但是如果我做->pulk((或->toArray((我得到了这样的结果:
[
"display_name" => b"Ofna €¢ Casa "
"id" => 2382
"name" => "OFNA • CASA"
"last_name" => null
]
由于某种原因,display_name在转换为Array时编码不正确。有办法解决这个问题吗?还是拉拉威尔的问题?
感谢
我的Laravel版本是6.8
我做了一个变通办法,但我确信应该能解决这个问题
这是我的工作方法,绘制得到的地图,然后在地图后使用采集
get()->
map(function($object){
return [
'name'=>$object->name.' '.$object->last_name,
'id'=>$object->id
];
})->pluck('name','id');
它确实有效,但我相信应该有更好的方法,或者可能向Laravel报告。
希望有人对此更了解。
THanks