3

actionUpdate の crud _form にボタンを追加するにはどうすればよいですか?

保存したファイルを削除して、新しいファイルをアップロードできます

私はモデルにこの機能を持っていました

    public function deleteImage()
    { 
        unlink(Yii::app()->basePath.'/../uploads/'.$this->image);
    }

このようなボタンでこれをトリガーする方法は?

<input type="button" value="delete image"/>
4

1 に答える 1

6

MVCでは、通常、コントローラーがユーザーからの対話を処理するため、ユーザーはモデルに直接アクセスするのではなく、コントローラーを介してアクセスします。コントローラーはユーザーのアクションをインターセプトし、モデルを呼び出すことによって作業を行います。したがって、可能な場合でも、モデル関数を直接呼び出さないことをお勧めします。

さて、あなたがやりたいことをするために、モデルの関数を呼び出す関数(アクション)をコントローラーに作成できます。

コントローラーで関数 (アクション) を呼び出すには、ボタンがクリックされたときに呼び出される URL を関連付けることができます。これはonclick イベントを使用して実行できます。ブラウザを新しい URL に移動させたくないので、この URL を ajax で呼び出します。

例、1) コントローラー内:

public function actionMyaction($id){
    $sampleMod=SampleModel::model()->findByPk($id);
    $sampleMod->deleteImage();
    Yii::app()->end();
}

2) ボタン付きビュー: CHtml ヘルパー クラスの ajaxButton<input type="button" value="delete image"/>を使用する代わりに。

echo CHtml::ajaxButton('Delete Image',Yii::app()->createUrl('controllername/actionname',array('id'=>$id)));

右 の 通過 に 気 を つけ て ください$id.

于 2012-04-22T13:38:45.050 に答える