如果CGridview为空,则重定向以创建页面Yii

时间:2014-03-08 10:39:13

标签: php yii

如果Yii CGridview在管理页面中没有数据,我想重定向到创建页面o / w重定向显示包含内容的CGridview。

示例:

Yii CGridview显示“emptyText”=>“找不到数据”空记录然后我想编写简单的脚本重定向回创建页面。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:4)

假设您在actionAdmin并且您正在使用CActiveDataProvider,那么您可以这样写

$dataProvider=new CActiveDataProvider('Post', array(
    'criteria'=>array(
        'condition'=>'status=1',
        'order'=>'create_time DESC',
        'with'=>array('author'),
    ),
    ),
));

if($dataProvider->totalItemCount < 1)
{
$this->redirect(where ever you want);
}

如果您使用的是findAll,那么您可以写

$models=YourModel::model()->findAll();
if(count($models)<1)
{
$this->redirect(where ever you want);
}

答案 1 :(得分:2)

您需要两条线。将它放在您的控制器操作中,就在$this->render(...)

之前
if(intval(YourModelName::model()->count()) == 0)
    $this->redirect('create');

答案 2 :(得分:1)

您应该在控制器中执行此操作。在你看来,你有

$this->widget('CGridView',array(
    'dataProvider'=>$model->search(),

在控制器中执行搜索,检查CActiveDataProvider是否没有返回记录,如果没有返回记录则重定向。我相信您可以使用CActiveDataProvider的getItemCount方法,请参阅此处http://www.yiiframework.com/doc/api/1.1/CDataProvider#getItemCount-detail