如果Yii CGridview在管理页面中没有数据,我想重定向到创建页面o / w重定向显示包含内容的CGridview。
示例:
Yii CGridview显示“emptyText”=>“找不到数据”空记录然后我想编写简单的脚本重定向回创建页面。
我怎样才能做到这一点?
答案 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