удаление записи вопрос к телепатам

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

удаление записи вопрос к телепатам

Сообщение zibert02 »

есть стандартный crud с удалением, вдруг при удалении начала вылезать ошибка
некорректный запрос
код контроллера

Код: Выделить всё

public function actionDelete($id)
    {
            if(Yii::app()->request->isPostRequest)
            {
                // 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'));
            }
            else
                throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    } 
ругается на строке if(!isset($_GET['ajax']))

что проверял-параметр $id совпадает, код для удаления в гриде не изменял
самое смешное что раньше работал, счас кое что менял и отвалился,
Аватара пользователя
mitaichik
Сообщения: 512
Зарегистрирован: 2010.09.24, 21:18
Откуда: Россия, Санкт-Петербург

Re: удаление записи вопрос к телепатам

Сообщение mitaichik »

Ну если у тебя ошибка некоректный запрос - значит не передается параметр id. Возможно, у тебя криво настроен urlmanager? Или тупо id нет в форме? С чег оты взял, что в $_GET есть ajax? Проверь fireBug'ом что отправляется на сервер со стороны клиента.

Еще возможно - косяк с маршрутами. Например, когда есть модуль и контроллер приложения с одинаковым именем. Тогда хз куда yii тыкается в первую очередь, ведь путь /news/list можно по сути интерпретировать как модуль news -> контроллер list -> действие по умолчанию, либо контроллер приложения news -> действие list
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: удаление записи вопрос к телепатам

Сообщение zibert02 »

id передается, запись удаляется
насчет if(!isset($_GET['ajax']))- это стандартная заготовка gii для удаления записи
Аватара пользователя
sergebezborodov
Сообщения: 133
Зарегистрирован: 2010.06.10, 19:53
Откуда: Dnepropetrovsk-Sevastopol, UA
Контактная информация:

Re: удаление записи вопрос к телепатам

Сообщение sergebezborodov »

Воспользуйтесь xdebug чтобы конкретно посмотреть как идет код и состояние переменных - обычно все сразу проясняется
A passion to perform
http://sergebezborodov.com
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: удаление записи вопрос к телепатам

Сообщение zibert02 »

так что смотреть? вылетает на строке if(!isset($_GET['ajax'])) т.е. не передается параметр, а почему? или передается но вылазит ошибка, причем в других контроллерах такой ошибки нет
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: удаление записи вопрос к телепатам

Сообщение Ekstazi »

Уже ответили постом выше, трейс не всегда верно показывает место ошибки.
zibert02
Сообщения: 203
Зарегистрирован: 2010.11.24, 17:29

Re: удаление записи вопрос к телепатам

Сообщение zibert02 »

вобщем разобрался, но вопросы остались
фаербуг показал код удаления
т.е. параметр
ajax
передается, но сгенерированный gii код (причем даже с коментарием) почему то не видит эту переменную и делает редирект

Код: Выделить всё

// 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')); 
самое смешное что страница с гридом не перегружается, и получается иллюзия что никакого редиректа нету
Ответить