lz19881123 2011-12-22 13:46:36 6467次浏览 8条回复 0 0 0

Call to a member function getData() on a non-object in?是什么原因呢?

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'header'=>'编号',
            'type'=>'raw',
            'value'=>'$data->pl_id',
        ),
        array(
            'header'=>'标题',
            'type'=>'raw',
            'value'=>'Helper::truncate_utf8_string($data->news_title,9,false)',
			
        ),
        array(
            'header'=>'内容',
            'type'=>'raw',
            'value'=>'Helper::truncate_utf8_string($data->pl_content,9,false)',	
        ),
        array(
            'header'=>'时间',
            'type'=>'raw',
            'value'=>'$data->pl_time',	
        ),
        array(
            'class'=>'CButtonColumn',	
        ),
    ),
));

$sql="select pl_id,news_title,pl_content,pl_time from news join pinglun on news.news_id=pl_int";
$dataProvider=Yii::app()->db->createCommand($sql)->queryAll();
//echo'<pre>';
//print_r($dataProvider);die();
$this->render('index',array(
    'dataProvider'=>$dataProvider,
));
}
  • 回复于 2012-01-04 11:30 举报

    VIEW显示页面;

    <?php
     $this->widget('zii.widgets.grid.CGridView', array(
    	'dataProvider'=>$dataProvider,
    	'pager'=>array(              //通过pager设置样式   默认为CLinkPager
                        'prevPageLabel'=>'上一页',
                        'firstPageLabel'=>'首页',  //first,last 在默认样式中为{display:none}及不显示,通过样式{display:inline}即可
                        'nextPageLabel'=>'下一页',
                        'lastPageLabel'=>'末页',
                        'header'=>'',
                          ),
                  'ajaxUpdate'=>false, 
    	'columns'=>array(
    	  array(             
                 'selectableRows' => 2,
                 'footer' => '<input type="checkbox" id="cbCheckAll" onclick="checkAll(this);"/><label for="cbCheckAll">全选</label>',
                 'class' => 'CCheckBoxColumn',
                 'headerHtmlOptions' => array('width'=>'50px'),
                 'checkBoxHtmlOptions' => array('name' => 'selectdel[]')          
         ),
    	array(
    			'name'=>'编号',
    			'type'=>'raw',
    			'value'=>'$data->pl_id',
    		),
    		array(
    			'name'=>'标题',
    			'type'=>'raw',
    			'value'=>'$data->username',
    			
    		),
    		array(
    			'name'=>'评论内容',
    			'type'=>'raw',
    			'value'=>'Helper::truncate_utf8_string($data->pl_content,9,false)',
    			
    		),
    			array(
    			'name'=>'评论时间',
    			'type'=>'raw',
    			'value'=>'$data->pl_time',
    			
    		),
    		array(
    			'class'=>'CButtonColumn',
    			
    		),
    		
    		
    	),
    ));
     ?>
    
  • 回复于 2012-01-04 15:03 举报

    大家的分享精神都跑哪里去拉。

  • 回复于 2012-01-04 23:25 举报

    你的CActiveDataProvider使用都不对。。。第一个参数传入的应该是 model 名字

  • 回复于 2012-01-04 23:33 举报

    你应该这样写才对吧,代码未经测试,大体上是这样形式:
    $sql="select pl_id,pl_content,pl_time,news_title,admin.username from news join pinglun on news_id=pinglun.pl_int left join tbl_user admin on admin.id=pl_person order by pl_id desc";

    $dataProvider = new CActiveDataProvider(
        'News',
        'criteria'=>array(
            'select'=>'pl_id,pl_content,pl_time,news_title,admin.username',
            'join'=> 'LEFT JOIN pinglun ON news_id = pinglun.pl_int LEFT JOIN tbl_user admin ON admin.id=pl_person',
            'order'=>'pl_id DESC',
        ),
        array( 'pagination'=>array( 'pageSize'=>8)
     ),
    
  • 回复于 2012-01-05 08:40 举报

    多谢热心人,我试试啊。

  • 回复于 2012-01-05 08:58 举报

    还是不行,只是查询到一张表的数据。

  • 回复于 2012-01-05 08:59 举报

    还是不行,只是查询到一张表的数据。

  • 回复于 2012-01-05 09:00 举报

    知道的回复下。谢谢。

您需要登录后才可以回复。登录 | 立即注册