【问题标题】:Laravel Binary String Issue When DB:raw and Pluck() or toArray()DB:raw 和 Pluck() 或 toArray() 时的 Laravel 二进制字符串问题
【发布时间】:2020-08-26 15:34:14
【问题描述】:

所以当我使用 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
      ]

但如果我执行 ->pluck() 或 ->toArray() 我得到了这个结果:

[
    "display_name" => b"Ofna €¢ Casa "
    "id" => 2382
    "name" => "OFNA • CASA"
    "last_name" => null
  ]

由于某种原因,display_name 在转换为数组时编码不正确。有没有办法来解决这个问题?还是 Laravel 的问题?

谢谢

我的 Laravel 版本是 6.8

【问题讨论】:

    标签: laravel


    【解决方案1】:

    我做了一个解决方法,但我确定应该解决这个问题

    这是我的工作,映射 get 然后在映射后在集合上使用 pluck

                     get()->
                     map(function($object){
                        return [
                            'name'=>$object->name.' '.$object->last_name,
                            'id'=>$object->id
                        ];
                    })->pluck('name','id');
    

    它确实有效,但我确信应该有更好的方法或者可能将它报告给 Laravel。

    希望有人对此有更好的了解。

    谢谢

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 2011-03-16
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2014-10-04
      • 1970-01-01
      • 2012-10-05
      相关资源
      最近更新 更多