Контроллер в Kohana 3, похоже, не работает, но имеет в фоновом режиме - PullRequest
0 голосов
/ 21 июля 2011

Мой клиент обнаруживает, что когда они нажимают, удалить ничего не происходит, но если они это делают снова, они получают ошибку, что этого «id» больше не существует.

Мне трудно в это поверить, потому что этофактически покидает страницу, а затем перенаправляется обратно на пост.

Ссылка в представлении:

<h4>Current Logo Image <span class='del'>
 (<?= HTML::anchor("playlist/imgdelete/$playlist->id/$logo->type", 'delete'); ?>)
</span></h4>

Процесс контроллера:

public function action_imgdelete($id, $type)
{
    DB::delete('images')->where('playlist_id', '=', $id)
                        ->where('type', '=', $type)->execute();
    Message::success('Image deleted');
    Request::current()->redirect("playlist/edit/$id");
}

Кто-нибудь знаеткак это может быть возможно?

1 Ответ

1 голос
/ 28 июля 2011

Это может быть связано с двойной кеш-буферизацией между Kohana и выбранным вами браузером.

Будет выполнено действие удаления, но из-за агрессивности в кеше страницы не будет отображаться никаких изменений.Повторное нажатие будет недействительным, так как вы уже выполнили действие, но визуально ничего не зарегистрировали на вашем конце.

Вы можете обойти это, добавив тег заголовка no-cache в ваш шаблон:

<meta http-equiv="cache-control" content="no-cache" />

Срок службы кэша по умолчанию, установленный Kohana, составляет минуту:

/**
 * @var  integer  Default lifetime for caching, in seconds, 
 *                 used by [Kohana::cache]. Set by [Kohana::init]
 */
public static $cache_life = 60;

Вы можете настроить его из system / classes / kohana / core.php

...