在MVC中,控制器通常会处理来自用户的交互,因此用户不会直接访问模型,而是通过控制器进行。控制器拦截用户操作并通过调用模型来完成工作。因此最好不要直接调用模型函数,即使可以。
现在,要做你想做的事,我们可以在控制器中创建一个函数(动作),然后调用模型的函数。
要在控制器中调用函数(动作),我们可以关联一个在单击按钮时将调用的 url,这可以通过使用onclick 事件来完成。我猜你不希望浏览器导航到一个新的 url,因此我们用 ajax 调用这个 url。
示例,1)在控制器中:
public function actionMyaction($id){
$sampleMod=SampleModel::model()->findByPk($id);
$sampleMod->deleteImage();
Yii::app()->end();
}
2) 在按钮视图中:而不是<input type="button" value="delete image"/>
使用CHtml 助手类的 ajaxButton。
echo CHtml::ajaxButton('Delete Image',Yii::app()->createUrl('controllername/actionname',array('id'=>$id)));
小心传球权$id
。