sfDoctrineGenerator Удалить не работает

В последнее время я изучал sfDoctrineGenerator Symfony для моего внутреннего интерфейса. Проблема в следующем:

Я использую sfDoctrineGuardPlugin для управления пользователями. Модуль sfGuardUser использует sfDoctrineGenerator. Все необходимые функции (удалить, изменить, добавить) работают. Все идет нормально.

Затем я создал новый модуль, используя эту ссылку в качестве ссылки. Функции добавления и редактирования теперь работают, но я не могу заставить работать удаление (как пакетное, так и одиночное). Я пытался явно добавить его под пакетными действиями, но все равно не работает. В нем говорится, что он уже удалил, показывая успешное флеш-сообщение, но ни один элемент не был удален. Может ли кто-нибудь указать мне правильное направление, где проблема могла возникнуть?

Вот копия моего генератора.yml

generator:
  class: sfDoctrineGenerator
  param:
    model_class:           News
    theme:                 admin
    non_verbose_templates: true
    with_show:             false
    singular:              ~
    plural:                ~
    route_prefix:          news
    with_doctrine_route:   true
    actions_base_class:    sfActions

    config:
      actions: ~

      fields:  
        news: {label: Announcement}
        created_at: {label: Date Published}
        updated_at: {label: Date Updated}
        user_id: {label: Author}
        user_name: {label: Author}

      list:    
        title:          Announcements List
        display:        [=title, created_at, updated_at, user_name]
        sort:           [created_at, desc]
        max_per_page:   10
        batch_actions:
          _delete:    ~

      filter: 
        display:  [title, user_id]

      form:   
        class:    NewsForm

      edit:    
        title:    Editing Announcement "%%title%%"

      new:     
        title:    New Announcement

Если вам нужно что-то еще от меня, пожалуйста, не стесняйтесь комментировать. Любая помощь будет высоко ценится. Заранее спасибо.

ОБНОВЛЕНИЕ:

Вот заголовок запроса, просматриваемый в Chrome:

Request URL:http://localhost:8080/inventory_dev.php/news
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:ja_purity_tpl=ja_purity; fontSize=100; __atuvc=312|19; JSESSIONID=9DDD204812F0C53A8B3D33B89BF7A7C8; matciis=ha6l8ci8h3i2bp696e4h33vig2; symfony=ld2qept3j5cddjsb16qie098u3
Host:localhost:8080
Referer:http://localhost:8080/inventory_dev.php/news
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
Response Headersview source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Type:text/html; charset=utf-8
Date:Wed, 30 May 2012 08:30:02 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=99
Pragma:no-cache
Server:Apache/2.2.21 (Win32) PHP/5.3.8
Transfer-Encoding:chunked
X-Powered-By:PHP/5.3.8

person nmenego    schedule 30.05.2012    source источник
comment
Отслеживали ли вы SQL-запрос, который может удалить строку?   -  person j0k    schedule 30.05.2012
comment
Мне жаль. Что вы предлагаете, как мне это сделать? Я попытался получить доступ к сайту через контроллер fronend_dev.php после кнопки удаления, но все запросы являются SELECT.   -  person nmenego    schedule 30.05.2012
comment
Я прошу вас проверить запросы из MySQL (если вы используете это), чтобы увидеть запрос DELETE, когда вы нажимаете ссылку удаления в бэкэнде. Таким образом, вы сможете протестировать запрос в phpMyAdmin (например), чтобы увидеть сообщение об ошибке SQL.   -  person j0k    schedule 30.05.2012


Ответы (1)


Это один из моментов жизни D'OH.

Проблема заключалась в том, что в моем schema.yml я указал:

actAs: { Timestampable: ~ , SoftDelete: ~ }

Это означает, что когда я удаляю элемент, он добавляет к нему только временную метку, а не удаляет его физически. Я удалил SoftDelete из конфигурации, и проблема была исправлена.

Может быть, в sfDoctrineGenerator должна быть функция для поддержки SoftDelete?

person nmenego    schedule 30.05.2012