Yii - 如何在CGridView中显示用户自己上传的数据?

时间:2014-04-13 14:47:52

标签: php yii

每个人我正在开发一个允许用户上传和下载数据的项目。我想在CGridView中只显示用户自己上传的数据。 这是我的关系表 enter image description here

我试图编辑我的页面 - >视图/文件/ myUploads.php

<?php
$isMine=Yii::app()->user->id; // I have tried this
if($isMine){
    $this->widget('zii.widgets.CGridView',array(
    'id'=>'file-grid',
    'dataProvider'=>$model->search(),
    //'filter'=>$model,
    'columns'=>array(
        'name'
        'description',
        'category'
        'uploader'
        'upload_date',
        array(
            'header'=>'Actions',
            'class'=>'bootstrap.widgets.TbButtonColumn',
                'template'=>'{delete}', //'visible'=> (Yii::app()->user->getLevel()==1),
                'deleteConfirmation'=>"js: 'Are you want to delete '+$(this).parent().parent().children(':first-child').text()+ '?'",        
                'buttons'=>array(
                    'delete' => array(
                        'visible'=> '$data->pengunggah==Yii::app()->user->id',
                    ),
                )   
        ),
    ),
)); }
?>

我已尝试过上述代码,但页面仍会显示所有数据,而非用户自己的数据。

我也尝试在FileController.php中编辑myUpload函数

public function actionMyUpload()
{
    $isMine=Yii::app()->user->id; // I have tried this
    if($isMine){
        $model=new File('search');
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['File']))
            $model->attributes=$_GET['File'];

        $this->render('myUpload',array(
        'model'=>$model,
        ));
    }
}

但仍显示所有数据。

任何人都可以帮助我吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

还原所有更改,打开您的模型类文件,即“File.php”,并在 search()函数中添加此行:

$criteria=new CDbCriteria;
// Simply add this line 
$criteria->addCondition('id_user='.Yii::app()->user->id);