Kohana Двойной GET запрос

100pudof

Новичок
Всем привет!
Знатоки, помогите пожалуйста! Гугль облазил найти ответа не могу:(

Ситуация:

Простой контроллер

PHP:
<?php
class Controller_Welcome extends Controller_Template {
    public $template = 'layout';
    public function action_index()
    {
             DB::update('page')->set(array('viewed' => DB::expr('viewed + 1')))->where('id', '=', 1)->execute();
    }
}
Так вот, по идее в таблицу "page", где id=1 viewed должен увеличиваться на 1, но он увеличивается на 2.

После долгих экспериментов выяснил, что данный запрос выполняется ДВА раза(
Но если сделать вот так :

PHP:
<?php
class Controller_Welcome extends Controller_Template {
    public $template = 'layout';
    public function action_index()
    {
     if  (HTTP_Request::POST == $this->request->method() ){
             DB::update('page')->set(array('viewed' => DB::expr('viewed + 1')))->where('id', '=', 1)->execute();
        }
    }
}
то будет +1 как в запросе.

Сталкивался кто-нибудь? Подскажите в какую сторону рыть, копать?

Благодарю всех заранее!
 

Здыхлик

Kohaner
Команда форума
В чем проблема посмотреть логи веб-сервера? Или тупо писать в лог Коханы тем же контроллером.
 

100pudof

Новичок
DB::update('page')->set(array('viewed' => DB::expr('viewed + 1')))->where('id', '=', 1)->execute();
для хомячка сойдет. а при нормальной посещаемости будет причиной проблем производительности.

это же корень сайта ? и в .htaccess небось правило "все что не файл или директория направить на контролер" ?
тогда это ? ТАДАМ ! иконку сайта в студию !!!
Производительность, да будет страдать, согласен, но это только при хорошей нагрузке. А как тогда сделать подобную операцию с минимальными затратами по ресурсам?
 

100pudof

Новичок
Разобрался сам.
Смотрите в чем дело:

Было два маршрута по идее аналогичных:

кастомный:
PHP:
Route::set('well', '(/<controller>(/<action>(/<id>)))' )
    ->defaults(array(
        'controller' => 'Welcome',
        'action' => 'index'
    ));
и по умолчанию:
PHP:
Route::set('default', '(/<controller>(/<action>(/<id>)))' )
            ->defaults(array(
                'controller' => 'Welcome',
                'action' => 'index',
        ));
Как только я убрал кастомный роут, прекратилось задвоение запроса через GET.
Хотя по идее первое правило должно было сработать и все, но нет.

Всем спасибо! Тему можно закрыть!
 
Сверху