【问题标题】:Yii: Can not list data in Grid ViewYii:无法在网格视图中列出数据
【发布时间】:2014-04-23 09:07:35
【问题描述】:

我无法使用 yii 框架在网格中列出数据。我的控制器是 Sitecontroller.php,我的视图是 list_jobseeker.php。我收到错误“致命错误:在非对象上调用成员函数 getData()”。有人帮帮我吗?

我的控制器代码

  public function actionlist_jobseeker()
  {
  $session_id=Yii::app()->session['user_id']; 
  if ($session_id == "")
    {
        $this->redirect( array('/employee/site/login'));
    }
  $user_id  =$session_id;
  $models = Yii::app()->db->createCommand()
     ->select('*')
     ->from('job_seeker_profile s')
     ->join('job_profile j','s.user_id = j.user_id')
     ->order('s.id')
     ->queryAll();
     $this->render('list_jobseeker',array('models' =>$models));

}

查看-list_jobseeker.php

<h1>View Jobseeker</h1>

<div class="flash-success">

</div>

 <div class="form">
 <?php
  $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'rates-phase-grid',
   'htmlOptions' => array('class' => 'table table-striped table-bordered table-hover'),
    'dataProvider'=>new CArrayDataProvider($models),
    'columns' => array(
        array(
            'name' => 'Name',
            'type' => 'raw',
            'value' => 'CHtml::encode($data[*]->name)',
            'htmlOptions' => array('style'=>'width:90px;','class'=>'zzz'),

     ),
        array(
            'name' => 'Email',
            'type' => 'raw',
            'value' => 'CHtml::encode($data[*]->email)',
            'htmlOptions' => array('style'=>'width:250px;','class'=>'zzz')

        ),
        array(
            'name' => 'Password',
            'type' => 'raw',
            'value' => 'CHtml::encode($data[*]->password)',
            'htmlOptions' => array('style'=>'width:90px;','class'=>'zzz')
        ),
        array(
            'name' => 'Contact No',
            'type' => 'raw',
            'value' => 'CHtml::encode($data[*]->contact_no)',
            'htmlOptions' => array('style'=>'width:40px;','class'=>'zzz')

        ),
         array(
            'name' => 'Gender',
            'type' => 'raw',
            'value' => 'CHtml::encode($data[*]->gender)',
            'htmlOptions' => array('style'=>'width:40px;','class'=>'zzz')

        ),


        array(
            'class' =>'CButtonColumn',
            'deleteConfirmation'=>'Are you sure you want to delte this item?',
            'template'=>'{update}{delete}',

            'buttons' =>array('update'=>array(

             'label'=>'edit',
      'url'=>'Yii::app()->controller->createUrl("UpdateJob",array("id"=>$data["id"]))',

                ),
             'delete'=>array('label'=>'delete',
     'url'=>'Yii::app()->controller->createUrl("DeleteJob",array("id"=>$data["id"]))'),


                )
            )
          ),
   ));
  ?>

【问题讨论】:

标签: php yii


【解决方案1】:

dataProvider 应该是 CDataProvider 实例。您正在传递一个数组:$model。您可以将其包装在 CArrayDataProvider:

'dataProvider' => new CArrayDataProvider($model),

其他几个问题:

a) 您的 gridview 期望 $data 是一个对象而不是一个数组。将所有$data-&gt;* 实例更改为$data[*] 或使用CActiveDataProviderCActiveRecord 实例作为job_seeker_profile

b) 按照惯例,$model 通常指的是单个 CModel 实例。因此,您的数组应该以复数形式命名,例如 $items

【讨论】:

  • 嗨,现在我收到错误消息“尝试获取非对象 C:\wamp\www\yii_new\framework\base\CComponent.php(612) 的属性:eval()'d code (1)"
  • 您使用的网格错误。我已经添加了一些问题。 But you need to read the manual
  • 在 C:\wamp\www\yii_new\framework\base\CComponent.php(612) 中出现错误“解析错误:语法错误,意外 '*',期望 ']' : eval( )'d 代码在第 1 行"
  • Topher,我已经编辑了视图和控制器页面,请看一下。
【解决方案2】:

我用这个:

    $data = ...::model()->findAll();
    $dataProvider=new CArrayDataProvider('Class of your object');
    $dataProvider->setData($data);
    $dataProvider->keyField = "primary key of your model";


    $this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
...
array( 'class'=>'CButtonColumn',
                    'template' => '{ver}',
                    'buttons' => array(
                        'ver' => array(
                            'url'=>'"?id=".$data["..."]',
                        'imageUrl'=> Yii::app()->baseUrl.'/images/view.png',  //Image URL of the button.
                    ),
                )
            ),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多