удалить по идентификатору не работает в YII 1

У меня есть следующий код в моем контроллере для удаления файлов:

 public function actionDelete($id)
{
$current_user_id=Yii::app()->user->id;
$condition = 'user_id=:user_id';
$params = array(':user_id' => $current_user_id);
$idExists = UserGroup::model()->exists($condition,$params);
if($idExists){
$list = UserGroup::model()->find($current_user_id);
$getgroup= $list->user_group_id;
$getgroupright=UserRights::model()->find($getgroup);
$getuserRule=$getgroupright->user_rule_id;
$getuserprivilege=$getgroupright->user_privilege_id;
if($getuserprivilege=='1' and $getuserRule=='3'){
$this->loadModel($id)->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

}
}

}

Код Тид if($getuserprivilege=='1' and $getuserRule=='3'){работает для просмотра файлов по id (100%). Тем не менее, это не слово для удаления файлов. Если я удаляю этот код, он начинает работать. Как я могу исправить эту ошибку?

0

Решение

Сначала добавьте приведенный ниже код в ваш контроллер сверху и проверьте, является ли запрос POST или GET

if(Yii::app()->request->isPostRequest())
echo "POST";
else
echo "NOT POST";

если вывод «НЕ ПОЧТА», то

Проверьте filters () в вашем контроллере и посмотрите, разрешено ли удаление только через POST-запрос.

фильтры публичных функций () {
возвращаемый массив (
'accessControl', // выполнить контроль доступа для операций CRUD
'postOnly + delete', // мы разрешаем удаление только через POST-запрос
);
}

‘postOnly + delete’, -> прокомментируйте эту строку.

разрешить удаление через запрос GET.

Альтернативное (более безопасное и лучшее) решение заключается в том, что вы используете POST
способ передать id в контроллер.

0

Другие решения

Попробуйте заменить

$this->loadModel($id)->delete();

с

$this->findModel($id)->delete();

Конечно, вам нужен метод findModel ($ id) в контроллере

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector