环境 : 后台有新闻分类和新闻的文章,在分类下有文章存在的时候,不想用户删除分类
代码
controller
public function actionDelete($id)
{
$data = Category::model()->findByPk($id); if(count($data->fk_news) > 0){//统计此分类下是否有文章,如果有,则不允许删除此分类
if(isset($_POST)){
// echo json_encode(1);
echo <<<EOF
<script>
alert('该分类下有新闻,请先删除或修改新闻所属分类,再进行删除!');
javascript:history.go(-1);
</script>
EOF;
}else{
echo <<<EOF
<script>
alert('该分类下有新闻,请先删除或修改新闻所属分类,再进行删除!');
javascript:history.go(-1);
</script>
EOF;
}
/*$cs=Yii::app()->getClientScript();
$cs->registerScript("","alert('该分类下有新闻,请先删除或修改新闻所属分类,再进行删除!');return false");*/
}else{
$this->loadModel($id)->delete();
if(!isset($_GET['ajax'])){
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
} // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
/*if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));*/
}
views
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'category-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'cid',
'c_name',
array(
'class'=>'CButtonColumn',
'afterDelete'=>'function(link,success,data){if(data){alert("该分类下有新闻,请先删除或修改新闻所属分类,再进行删除.");}else{alert("删除成功");}}',
'deleteConfirmation'=>"js:'ID为 '+$(this).parent().parent().children(':first-child').text()+' 的记录将被删除,确定删除?'",
),
),
)); ?>