环境 : 后台有新闻分类和新闻的文章,在分类下有文章存在的时候,不想用户删除分类
代码
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()+' 的记录将被删除,确定删除?'", ), ), )); ?>