action только для POST

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
b10s
Сообщения: 72
Зарегистрирован: 2013.02.02, 18:22
Откуда: Краснодар-Сочи-Тимашевск
Контактная информация:

action только для POST

Сообщение b10s »

Здравствуйте,

хочу сделать так, чтобы мой action работал только для POST запросов ( буду юзать для ajax целей ). Так же хочу получать параметры запроса в виде параметров вызова action' a. Как это сделать?

имею код

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

    
        public function actionRefresh($id=-1) {
            if( $deal = Deal::model()->find('id='.$id) ) {

            } else {

            }
        } 
p.s.: такой метод использования метода(извините за тавтологию) find не чреват sql-inj ?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: action только для POST

Сообщение anton44eg »

Используйте findByPk или плейсхолдеры
По теме - есть фильтр postOnly
http://www.yiiframework.com/doc/guide/1 ... controller тут упоминается
Аватара пользователя
b10s
Сообщения: 72
Зарегистрирован: 2013.02.02, 18:22
Откуда: Краснодар-Сочи-Тимашевск
Контактная информация:

Re: action только для POST

Сообщение b10s »

не смогли бы привести два примера, приментиельно к моему случаю, касательно findByPk и плейсхолдеров ?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: action только для POST

Сообщение anton44eg »

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

$deal = Deal::model()->findByPk($id);
$deal = Deal::model()->find('id = ?', array($id));
$deal = Deal::model()->find('id = :id', array(':id'=>$id));
 
Аватара пользователя
b10s
Сообщения: 72
Зарегистрирован: 2013.02.02, 18:22
Откуда: Краснодар-Сочи-Тимашевск
Контактная информация:

Re: action только для POST

Сообщение b10s »

anton44eg писал(а):есть фильтр postOnly
http://www.yiiframework.com/doc/guide/1 ... controller тут упоминается
Спасибо. Как теперь мне заматчить параметры поста? что-т мой action не берет их :(
Аватара пользователя
matios
Сообщения: 76
Зарегистрирован: 2013.03.17, 20:44
Откуда: Россия, Лиски

Re: action только для POST

Сообщение matios »

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

public function filters()
    {
        return array(
            'postOnly + refresh', //Только POST запросы
            'ajaxOnly + refresh', // Только Ajax запросы
        );
    }
По умолчанию при такой записи

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

public function actionRefresh($id=-1) 
$id будет отличным от "-1" только в случае GET запроса. Если нужен параметра из POST запроса, то обращайтесь к нему напрямую:

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

Yii::app()->request->getPost('id', '-1');  
Аватара пользователя
b10s
Сообщения: 72
Зарегистрирован: 2013.02.02, 18:22
Откуда: Краснодар-Сочи-Тимашевск
Контактная информация:

Re: action только для POST

Сообщение b10s »

Спасибо!
Ответить