TP5報如下的錯誤 Indirect modification of overloaded element of think\paginator\Collection has no effect【轉】


控制器中關鍵代碼如下:

// 查詢狀態為1的用戶數據 並且每頁顯示10條數據
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分頁數據賦值給模板變量list
$this->assign('list', $list);
// 渲染模板輸出
return $this->fetch();

模板文件中分頁輸出代碼如下:

<div>
<ul>
{volist name='list' id='user'}
       <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}

上面的方法非常簡單,但是如果我想在查詢出來的數據中加入新的值的,上面的方法就不能用了,當你嘗試對$list進行循環的時候,會報如下的錯誤

Indirect modification of overloaded element of think\paginator\Collection has no effect

這是因為$list不是一個數組,而是數據集對象think\Collection

下面是處理方法

// 查詢狀態為1的用戶數據 並且每頁顯示10條數據
$list = Db::name('user')->where('status',1)->paginate(10);
// 獲取分頁顯示
$page = $list->render();
$data = $list->all();
foreach($data as $key=>$val){
   $data[$key]['key'] = $key;
}
$this->assign('data', $data);
$this->assign('page', $page);
// 渲染模板輸出
return $this->fetch();

模板文件中分頁輸出代碼如下:

<div>
    <ul>
        {volist name='data' id='user'}
        <li>{$user.nickname}</li>
        {volist}
    </ul>
</div> 

原文鏈接:http://blog.sina.com.cn/s/blog_4cd978f90102yelk.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM