DB Facade的结果在$ this-> table命令中给出错误:行必须是数组或TableSeparator实例

时间:2019-05-14 14:31:45

标签: php laravel

我安装了Laravel-zero应用程序,并安装了数据库组件。 我正在使用$this->table函数来显示我正在$projects = DB::table('projects')->get()->toArray();检索的所有“项目” 唯一的错误是:“行必须是数组或TableSeparator实例。”。但显然输出是一个数组。我在做什么错了?

编辑:$ this-> table($ headers,[])的输出;很好。(排除问题)

Laravel文档也在使用toArray():

https://laravel.com/docs/5.7/artisan#defining-input-expectations

$users = App\User::all(['name', 'email'])->toArray();

我的handle():

$headers = ['id','name', 'created_at', 'deleted_at'];
$projects = DB::table('projects')->get()->toArray();
$this->table($headers, $projects);

我的数组的输出:

array:3 [
  0 => {#270
    +"id": "1"
    +"name": "TestProject"
    +"created_at": null
    +"updated_at": null
  }
  1 => {#272
    +"id": "2"
    +"name": "Testproject2"
    +"created_at": null
    +"updated_at": null
  }
  2 => {#273
    +"id": "3"
    +"name": "Nanko TEST"
    +"created_at": null
    +"updated_at": null
  }
]

1 个答案:

答案 0 :(得分:0)

我通过循环真实的集合并将对象转换为数组来修复atm:

$array_projects = $projects->map(function ($item, $key) {
    return (array) $item;
});