我知道,通常你只会使用集成的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。这就解释了为什么没有显示