Здравствуйте,
Вчера пытался сделать удаление и обнаружил очень интересный факт.
в пишу контроллере:
public function actionDelete()
{
if(Yii::app()->request->isPostRequest)
{
$this->loadmenu()->delete();
$this->redirect(array('list','id'=>$model->id));
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
}
public function loadmenu($id=null)
{
if($this->_model===null)
{
if($id!==null || isset($_GET['id']))
$this->_model=menu::model()->findbyPk($id!==null ? $id : $_GET['id']);
if($this->_model===null)
throw new CHttpException(404,'The requested page does not exist.');
}
return $this->_model;
}
Во View:
<?php echo CHtml::linkButton('Delete',array(
'submit'=>'',
'params'=>array('command'=>'delete','id'=>$model->id),
'confirm'=>"Are you sure to delete #{$model->id}?")); ?>
Работает!,
Но стоит вместо "delete" написать например "del" - все, не работает.
тоесть если написать так в контроллере:
…
public function [b]actionDel/b
…
а в виде:
…
‘params’=>array(‘command’=>‘del’,‘id’=>$model->id),
…
то работать перестает, более того скажу больше.
Если в контроллере ваще удалить actionDelete
а в виде написать как было:
…
params’=>array(‘command’=>‘delete’,‘id’=>$model->id),
…
То все равно работает. удаляет (БЕЗ контроллера)
А зачем тогда контроллер?
Если так же вызывать не CHtml::linkButton, а просто через CHtml::link
То во первых - Контроллер нужен!
Во вторых - удаление работает со сменой названия Action, хоть "Горошком" назовите все равно удалит.
Вопрос:
Почему не работает через линкБатн?
Спасибо