格式错误的UTF-8字符,可能编码错误

时间:2016-07-25 14:47:09

标签: php json laravel-5.2

我试图检索' request_item'中的所有记录。属于' profile'的模型模特和'简介'模型有blob专栏。

$items = request_item::orderBy('created_at','asc')->orderBy('updated_at','asc')->take(200)->get();
foreach($items as $i):
   $i->name = $i->profile->fullname;
   $i->item_name = $i->inventory->item_name;
endforeach;

return response()->json([ 'success' => true, 'items' => $items ]);

从上面的代码中可以看出,我记录了200条记录,按照“创建日期”的顺序排列。和' updated_at'在升序上,然后我遍历对象并创建一个名为' name'包含对象'全名'来自父模型' profile'并将其作为json响应返回(来自前端的Ajax请求)。这是' request_item' model和' profile_model'

'轮廓'模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class profile extends Model
{
    protected $table = "profiles";
    protected $primaryKey = "username";
    public $incrementing = false;

    public function request_item(){
        return $this->hasMany('App\request_item','username');
    }

}

和&#39; request_item&#39;模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class request_item extends Model
{
    protected $table = "request_items";

    public function profile(){
        return $this->belongsTo('App\profile','username');
    }
}

但它从响应中给出了这个错误

  

格式错误的UTF-8字符,可能编码错误

基于此错误,我确定它引用的blob图像与来自&#39;配置文件的检索到的对象相关。模型,即使我指定只获取&#39;全名&#39; (我不知道,为什么&#39; blob&#39;列与&#39; fullname&#39;一起被拉出来)

$i->profile->fullname;

那么,有没有办法可以将blob转换为base64,以便它可以成为有效的json响应?我知道我可以这样做

 base64_encode($data);

但我不知道在哪里插入,哪一部分,哪一行?或者有没有办法通过模型完成它?喜欢拉它时它会自动转换为base64吗?

PS:我在Laravel 5.2上运行

0 个答案:

没有答案