繁体   English   中英

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

[英]Redirect to create page if CGridview is empty Yii

如果Yii CGridview在管理页面中没有数据,我想重定向到创建页面。o / w redirect show CGridview with content。

例:

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

我该如何实现?

假设您处于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);
}

您只需要两行。 将其放在$this->render(...)之前的控制器动作中:

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

您应该在控制器中执行此操作。 您认为

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM