0

通常、管理者にある統合された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,
    ));
}

削除.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 -->

助けてくれてありがとう。

4

1 に答える 1

3

_form2.phpの 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()してください。特に、戻り値の 3 番目の引数に注意してください。実際に NULL をエコーし​​ていることがわかりました。これは、表示がない理由を説明しています。

于 2013-03-14T19:53:50.753 に答える