在Yii框架中创建一个删除页面表单


Create a delete page form in Yii Framework?

我知道,通常你只会使用集成的CRUD删除按钮,是在管理,但对于我的目的,我需要一个实际的页面删除,只是有一个字段和提交按钮的id,但到目前为止,它只是产生错误视图,所以任何帮助是赞赏的。我已经尝试创建它与我的创建和更新页面设置相同,请参见下面的代码:

到删除页面的链接:

<?php echo CHtml::link('Delete Article', array('delete', 'id'=>$pageid)); ?>

它产生的链接:

http://local/..../Yii/news/index.php/delete?id=3

控制器:

public function actionDelete($id)
{
$model=$this->loadModel($id);

    if(isset($_POST['news_model']))
    {
        $model->attributes=$_POST['news_model'];
        if($model->save())
            $this->redirect('index');
    }
    $this->render(array('delete', array(
        'model'=>$model,
    ));
}

Delete.php:

<h2>Delete a news item</h2>
<?php echo $this->renderPartial('_form2', array('model'=>$model)); ?>

_form2.php

<?php echo $form->errorSummary($model); ?>
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'news-model-form',
'enableAjaxValidation'=>false,
)); ?>
<div class="form">
<div class="row">
    <?php echo $form->labelEx($model,'id'); ?><br>
    <?php echo $form->textField($model,'id',array('size'=>50,'maxlength'=>128)); ?>
    <?php echo $form->error($model,'id'); ?>
</div><br>
<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Delete a news item'); ?>
</div>
    <?php $this->endWidget(); ?>
    </div><!-- form -->

提前感谢您提供的任何帮助。

_form2.php

<?php echo CHtml::submitButton($model->isNewRecord ? 'Delete a news item'); ?>

更像

<?php echo CHtml::submitButton($model->isNewRecord ? 'Delete a news item':'Delete an old item'); ?>

参见PHP中的三元运算符:比较运算符

…但我不明白这句话的意思,对我来说,它看起来更像是:

<?php if (!$model->isNewRecord) echo CHtml::submitButton("Delete Record"); ?>

…但$model=$this->loadModel($id);

加载时,保证记录不是新的。

同时,在Delete.php

<?php echo $this->renderPartial('_form2', array('model'=>$model)); ?>

更像

<?php echo $this->renderPartial('_form2', array('model'=>$model), true); ?>

<?php $this->renderPartial('_form2', array('model'=>$model)); ?>

参见文档renderPartial(),特别注意它的返回值它的第三个参数。事实证明,你实际上是在回显NULL。这就解释了为什么没有显示