鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ laravel 中的model返回的對象以及stdClass對象轉(zhuǎn)成數(shù)組fore

laravel 中的model返回的對象以及stdClass對象轉(zhuǎn)成數(shù)組foreach問題

Model::all() 返回的對象格式:

 object(Illuminate\Database\Eloquent\Collection)[275]
  protected 'items' => 
    array (size=1)
      0 => 
        object(App\Models\Keywords)[276]

重組的‘對象格式:

object(Illuminate\Support\Collection)[249]
  protected 'items' => 
    array (size=1)
      0 => 
        object(stdClass)[265]          

問題當重組的對象轉(zhuǎn)換成數(shù)組在foreach循環(huán)的時候會出現(xiàn)


    “Cannot use a scalar value as an array”

這種錯誤,之前用轉(zhuǎn)換器collect或者json_decode來解決此問題,但如果不能使用轉(zhuǎn)換器的情況下在控制器里面即使這樣處理也會報錯,哪位大神知道該怎么解決此問題?

回答
編輯回答
終相守

兩種方法, 一種是直接用Collectionforeach方法:

Model::all()->each(function ($item){
 // ...
})

另外一種是先從Collection里取出數(shù)組, 用toArray方法,再foreach:

$all = Model::all()->toArray();
foreach ($all as $item) {
  // ...
}
2018年8月23日 13:23
編輯回答
我以為
用toArray()就可以了

$res = DB::table('column')->get()->toArray();
foreach ($res as $columns) {
      echo $columns->title;
}

不知道是不是你想要的效果
2017年7月24日 09:01