問題
當你使用foreach遍歷數據庫裏查詢出來的代碼的時候是否遇到過這個問題?
如下代碼爲例:
$data=Db::name("data")->select();
foreach($data as $k => $v){
$data[$k]['colum']=1;
}
如果你在TP5中使用上述代碼,你將會遇到這個錯誤。爲什麼呢?
分析
我們可以var_dump一下$data查看一下:
···
object(think\Collection)[16]
protected ‘items’ =>
array (size=3)
…
···
這明顯是個對象,應該是能夠遍歷但是不能直接爲其賦值。那麼問題就比較好解決了。
解決方案
將上述代碼改爲:
$data=Db::name("data")->select()->toArray();
foreach($data as $k => $v){
$data[$k]['colum']=1;
}
將數據庫查詢結果轉換爲數組即可啦。